用户的 Symfony 编辑角色给出错误
Symfony edit roles of User gives error
我正在尝试通过 Symfony 表单编辑特定用户的用户角色。
我的表格包含这个:
->add('role', ChoiceType::class, [
'expanded' => true,
'required' => false,
'multiple' => true,
'choices' => [
'ROLE_SUPER_ADMIN' => 'ROLE_SUPER_ADMIN',
'ROLE_TEST' => 'ROLE_TEST',
'ROLE_USER' => 'ROLE_USER'
],
]);
这是我处理表单的方法
public function editUserAction(User $user, Request $request)
{
$userForm = $this->createForm(UserForm::class, $user);
$userForm->handleRequest($request);
if ($userForm->isSubmitted() && $userForm->isValid()) {
$this->userService->save($user);
return $this->redirectToRoute('user');
}
return $this->render(
'userEdit.html.twig',
[
'form' => $userForm->createView(),
]
);
}
处理程序中的保存方法只是将数据持久化到数据库。
当我尝试 select 多个角色时出现的错误是:
Expected argument of type
"Doctrine\Common\Collections\ArrayCollection", "array" given
使用 by_reference
选项:http://symfony.com/doc/current/reference/forms/types/choice.html#by-reference
->add('role', ChoiceType::class, [
'expanded' => true,
'required' => false,
'multiple' => true,
'choices' => [
'ROLE_SUPER_ADMIN' => 'ROLE_SUPER_ADMIN',
'ROLE_TEST' => 'ROLE_TEST',
'ROLE_USER' => 'ROLE_USER'
],
'by_reference' => false
]);
检查您是否有用户 class 的 addRole 和 removeRole。
我正在尝试通过 Symfony 表单编辑特定用户的用户角色。
我的表格包含这个:
->add('role', ChoiceType::class, [
'expanded' => true,
'required' => false,
'multiple' => true,
'choices' => [
'ROLE_SUPER_ADMIN' => 'ROLE_SUPER_ADMIN',
'ROLE_TEST' => 'ROLE_TEST',
'ROLE_USER' => 'ROLE_USER'
],
]);
这是我处理表单的方法
public function editUserAction(User $user, Request $request)
{
$userForm = $this->createForm(UserForm::class, $user);
$userForm->handleRequest($request);
if ($userForm->isSubmitted() && $userForm->isValid()) {
$this->userService->save($user);
return $this->redirectToRoute('user');
}
return $this->render(
'userEdit.html.twig',
[
'form' => $userForm->createView(),
]
);
}
处理程序中的保存方法只是将数据持久化到数据库。
当我尝试 select 多个角色时出现的错误是:
Expected argument of type "Doctrine\Common\Collections\ArrayCollection", "array" given
使用 by_reference
选项:http://symfony.com/doc/current/reference/forms/types/choice.html#by-reference
->add('role', ChoiceType::class, [
'expanded' => true,
'required' => false,
'multiple' => true,
'choices' => [
'ROLE_SUPER_ADMIN' => 'ROLE_SUPER_ADMIN',
'ROLE_TEST' => 'ROLE_TEST',
'ROLE_USER' => 'ROLE_USER'
],
'by_reference' => false
]);
检查您是否有用户 class 的 addRole 和 removeRole。