我正在尝试创建一个允许我删除由于FOS而创建的用户的功能。但每次我收到这个错误:
ContextErrorException:警告:缺少参数1 调用FOS \ UserBundle \ Model \ User :: hasRole() /home/symfony_test/vendor/symfony/symfony/src/Symfony/Component/PropertyAccess/PropertyAccessor.php 在第366行并在中定义 /home/symfony_test/vendor/friendsofsymfony/user-bundle/FOS/UserBundle/Model/User.php 300行
我无法弄清楚如何摆脱这个问题。
我的功能:
public function deleteAction(Request $request, User $user = null)
{
if (!$user) {
$this->session->getFlashBag()->set(
'warning',
$this->translator->trans('users.messages.user_not_found')
);
return new RedirectResponse(
$this->router->generate('user')
);
}
$userForm = $this->formFactory->create(
new UserType(),
$user,
array(
'validation_groups' => 'user-delete'
)
);
$userForm->handleRequest($request);
if ($userForm->isValid()) {
$user = $userForm->getData();
$this->userModel->delete($user);
$this->session->getFlashBag()->set(
'success',
$this->translator->trans('users.messages.success.delete')
);
return new RedirectResponse(
$this->router->generate('user')
);
}
return $this->templating->renderResponse(
'AppBundle:User:delete.html.twig',
array('user'=>$user,
'form' => $userForm->createView())
);
}