我安装了 FOSUsrBundle。如何将角色从控制器添加到用户?
我尝试了这个解决方案但不起作用:
$user = $this->container->get('security.context')->getToken()->getUser();
$user->addRole('ROLE_USER');
我安装了 FOSUsrBundle。如何将角色从控制器添加到用户?
我尝试了这个解决方案但不起作用:
$user = $this->container->get('security.context')->getToken()->getUser();
$user->addRole('ROLE_USER');
只需在您的 userType 表单上添加一个带有角色列表的角色选择字段。
$builder->add('roleList', 'choice', array(
'choices' => array(
'ROLE_ADMIN' => 'ROLE_ADMIN',
'ROLE_USER' => 'ROLE_USER',
),
'property_path' => false,
'multiple' => true,
))
在控制器中只需添加此代码即可将角色添加到用户中
$formData = $this->getRequest()->request->get($form->getName());
$roles = $formData['roleList'];
foreach($roles as $key => $value)
{
$user->addRole($value);
}
我认为这足以将角色分配给用户界面。