首页 > 解决方案 > 删除时未定义的索引“用户”

问题描述

使用 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');
    }

在刷新命令上,我得到“未定义的索引:用户”,但在其他实体(不是用户)上使用相同的方法就像一个魅力。我不明白这里的意思,有什么提示吗?

多谢

标签: symfonyentity

解决方案


我不建议使用方法“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');
}

推荐阅读