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管理員來管理所有用戶(更改角色,更改名稱,電子郵件......) –