0

FOSUsrBundle をインストールしました。コントローラーからユーザーに役割を追加する方法は?

この解決策を試しましたが、うまくいきません:

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

1 に答える 1

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);
}

ユーザーにユーザーインターフェイスに役割を割り当てるには、これで十分だと思います。

于 2012-07-08T11:28:05.883 に答える