删除时未定义的索引“用户”

时间:2019-04-18 10:33:18

标签: symfony entity

使用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命令上,我得到“未定义索引:用户”,但是在其他实体(不是用户)上的方法却非常相似。我不明白这里的意思吗?

非常感谢

2 个答案:

答案 0 :(得分:0)

看来您的代码是完全正确的。我相信在刷新对象时不应出现错误。 Symfony Documement

答案 1 :(得分:0)

我不建议使用方法“ GET”删除“用户”。您可以尝试使用以下代码:

    /**
 * @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');
}