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