0
我安装了FOSUsrBundle。如何从控制器添加角色到用户?在FOSUserBundle中添加角色
我尝试这个解决方案,但不起作用:
$user = $this->container->get('security.context')->getToken()->getUser();
$user->addRole('ROLE_USER');
我安装了FOSUsrBundle。如何从控制器添加角色到用户?在FOSUserBundle中添加角色
我尝试这个解决方案,但不起作用:
$user = $this->container->get('security.context')->getToken()->getUser();
$user->addRole('ROLE_USER');
只是角色列表中的用户类型表格上添加一个角色的选择领域。
$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);
}
我认为这是不够分配角色到用户的用户界面。
其实,你不会甚至不需要手动添加角色。只需将'roleList'重命名为'roles','FOSUserBundle'应该在添加用户时添加角色,例如'$ userManager-> updateUser($ formData-> getData())'。这对我有效 –
注册时添加角色..您需要通过控制台更改角色。 –
你是什么意思“不起作用”?你怎么知道它不起作用?您是仅仅尝试为当前请求添加它还是想要将此角色保存到数据库? – MDrollette
改变角色从控制台它是好的,但我想改变角色从控制器(在数据库中坚持这个角色),因为我有一个interfece管理员来管理所有用户(更改角色,更改名称,电子邮件......) –