Професионална програма
Loading...
+ Нов въпрос
daniel.nikov926 avatar daniel.nikov926 18 Точки

Проблем с route

Здравейте,

написах в UserController кога, който е за изтриване и редактиране на потребители, но и на двете ми дават грешка route. Кода който написах е:

/**
 * @Route("/delete/{id}", name="admin_user_delete")
 *
 * @param $id
 * @param Request $request
 * @return \Symfony\Component\HttpFoundation\Response
 */
public function deleteUser($id, Request $request)
{
    $user = $this->getDoctrine()->getRepository(User::class)->find($id);

    if($user === null)
    {
        return $this->redirectToRoute("admin_users");
    }

    $form = $this->createForm(UserEditType::class, $user);

    return $this->render('admin/user/delete.html.twig', ['user'=> $user,
    'form' => $form->createView()]);
}

Грешката която ми изписва браузъра е: Unable to generate a URL for the named route "admin_user_delete" as such route does not exist.

0
PHP Web Development
nmihaylov avatar nmihaylov 1 Точки

Пробва ли да изтриеш кеша?

0
daniel.nikov926 avatar daniel.nikov926 18 Точки

Да и ctrl+F5 не помага, защото като ги изтрия и си тръгва всичко

0
nmihaylov avatar nmihaylov 1 Точки

Покажи къде и как викаш този route?

0
daniel.nikov926 avatar daniel.nikov926 18 Точки
{% block main %}
    <div class="admin_panel_list">
        <fieldset>
            <legend>Всички потребители</legend>
            <table class="table table-striped">
                <thead>
                <tr>
                    <th>#</th>
                    <th>Full Name</th>
                    <th>Email</th>
                    <th>Actions</th>
                </tr>
                </thead>
                <tbody>
                {% for user in users %}
                <tr>
                <tr {% if user.isAdmin() %}class="info" {% endif %}>
                    <td>{{ user.id }}</td>
                    <td>{{ user.fullName }}</td>
                    <td>{{ user.email }}</td>
                    <td>
                        <a href="#">Edit</a>
                        <a href="{{ path('admin_user_delete', {'id': user.id}) }}">Delete</a>
                    </td>
                </tr>
                </tr>
                </tbody>
                {% endfor %}
            </table>
        </fieldset>
    </div>
{% endblock %}
0
netbull avatar netbull -4 Точки

1-во метода ти трябва да завършва на Action т.е. deleteUserAction.

2-ро погледни пак дали си включил в app/config/route.yml този контролер или бъндъл да използва анотации за руутовете както е описано тук

П.С. предполагам колегата е имал предвид кеша на симфони, а не на браузъра. На симфони се трие с командата php bin/console cache:clear (--env=prod) /по подразбиране трие за девелопърската версия/

0
16/01/2017 09:35:26
daniel.nikov926 avatar daniel.nikov926 18 Точки

по-нагоре във файла съм използвал

/**
     * @Route("/", name="admin_users")
     *
     * @return \Symfony\Component\HttpFoundation\Response
     */
    public function listUsers()
    {
        $users = $this->getDoctrine()->getRepository(User::class)->findAll();

        return $this->render('admin/user/list.html.twig', ['users'=> $users]);
    }

и си работи и също така го сложих и в route.yml, но нищо не се оправи

0
netbull avatar netbull -4 Точки

пробвай без бакслаш в урл-а www.your-host.com/delete/12, ако нестане постни app/config/route.yml да видим там и между другото имат дебуг бар ползвай го...

Това с Action в метода при конфигурация с yml вместо анотации е задължително, а както в твоя случай е по конвенция

0
16/01/2017 09:50:29
daniel.nikov926 avatar daniel.nikov926 18 Точки

можеш ли да ми дадеш пример за route.yml ?

0