【发布时间】:2019-09-08 16:24:08
【问题描述】:
使用 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');
}
在刷新命令上我得到“未定义的索引:用户”,但在其他实体(不是用户)上使用相同的方法就像一个魅力。我不明白这里的意思,有什么提示吗?
非常感谢
【问题讨论】:
-
你能告诉我们你的用户实体吗?以及整个错误消息?
-
虽然我要说的不能解决问题(因为它的代码有效),我建议你直接将用户对象传递给删除方法,让参数转换器查询用户对象。这将在这里和那里为您节省几行代码! public function delete(User $user) 然后你可以直接remove($user) & flush()。 (symfony.com/doc/master/best_practices/…)
-
错误是
undefined index: users=> users 。这似乎与删除操作无关,您可能尝试访问模板中的users变量或类似的东西。 -
这是我的用户实体:codeshare.io/GbyXZV 谢谢
-
检查重复的 URL 或尝试清除缓存