Symfony включить, чтобы найти и удалить элемент - PullRequest
0 голосов
/ 20 марта 2020

Во-первых, это мой код:

   /**
     *
     * @Route("/delete", name="team_delete_v4")
     */
    public function deleteTeam(Request $request, BaseEquipe $team, $id)
    {
        $entityManager = $this->getDoctrine()->getManager();

        $repository = $this->getDoctrine()->getRepository(BaseEquipe::class);
        $equipe = $repository->find($team->getId());
        $entityManager->remove($equipe);


        return $this->redirectToRoute('equipe_index_v4');
    }

В моем контроллере есть функция, где я пытаюсь найти / найти объект по его идентификатору и удалить этот объект. По какой-то причине Symfony говорит мне "Невозможно угадать, как получить экземпляр Doctrine из информации запроса для параметра" team "." , и я не могу угадать, как ее решить. Пожалуйста, не могли бы вы помочь мне, ребята?

PS: Моя версия на самом деле 3.4

Большое спасибо

1 Ответ

0 голосов
/ 23 марта 2020

В вашем контроллере вы получаете 3 параметра, $ request, $ team и id, но как symfony знает, что команда witch $ отправляет вашему контроллеру. Вы должны передать идентификатор в URL:

    /**
     * @Route("/delete/{id}", name="team_delete_v4")
     */
    public function deleteTeam(Request $request, BaseEquipe $team)
    {
        $entityManager = $this->getDoctrine()->getManager();
        $entityManager->remove($team);


        return $this->redirectToRoute('equipe_index_v4');
    }

Обратите внимание, что теперь URL-адрес / delete / {id} , когда вы объявляете идентификатор в контроллере, symfony найдет объект с этим идентификатором. Посмотрите на документы.

Итак, в вашем шаблоне вы должны передать идентификатор объекта, который вы хотите удалить:

path("team_delete_v4", {id: team.id})

Извините за мой английский sh, надеюсь, это поможет.

...