在FOSUserBundle中添加角色

时间:2012-07-03 17:00:48

标签: symfony fosuserbundle

我安装了FOSUsrBundle。如何从控制器向用户添加角色?

我尝试过这个解决方案,但不起作用:

$user = $this->container->get('security.context')->getToken()->getUser();
$user->addRole('ROLE_USER');

1 个答案:

答案 0 :(得分:3)

只需在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);
}

我认为这足以将角色分配给用户界面。