неопределенный индекс 'пользователь' при удалении - PullRequest
0 голосов
/ 18 апреля 2019

с использованием symfony 4.2.4, вот мой метод:

/**
     * @Route("/users/{id}/delete", name="delete_user", methods={"GET"})
     */
    public function delete($id)
    {
        $this->denyAccessUnlessGranted('ROLE_ADMIN');

        $entityManager = $this->getDoctrine()->getManager();
        $user = $entityManager->getRepository(User::class)
            ->find($id);

        $entityManager->remove($user);
        $entityManager->flush();

        $this->addFlash('success', 'User successfully removed!');

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

по команде flush я получаю "undefined index: users", но тот же метод для других объектов (не пользователей) работает следующим образомШарм.Я не понимаю суть здесь, любой намек?

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

Ответы [ 2 ]

0 голосов
/ 20 апреля 2019

Я не рекомендую использовать метод "GET" для удаления "user".Вы можете попробовать использовать этот код:

    /**
 * @Route("/{id}", name="users_delete", methods="DELETE")
 */
public function delete(Request $request, $id): Response
{
    $idUser = $this->UsersRepository->findOneById($id);
    if ($this->isCsrfTokenValid('delete'.$idUser->getId(), $request->request->get('_token'))) {
        $em = $this->getDoctrine()->getManager();
        $em->remove($idUser);
        $em->flush();
    }
    return $this->redirectToRoute('users_index');
}
0 голосов
/ 18 апреля 2019

Кажется, ваш код совершенно корректен. Я считаю, что ошибка не должна возникать при промывке объекта. Документация Symfony

...