2016-12-09 9 views
1

ユーザのロールを設定したい。私は「ROLE_ADMIN」すべてはOKですが、私が設定したときに「ROLE_USER」データベースセルが空で設定した場合Fosuser bundle - ロールをユーザに設定する

$user = this->getDoctrine()->getRepository('BlogBundle:User')->findOneById('11'); 
    $em = $this->getDoctrine()->getManager(); 
    $t=array('ROLE_ADMIN'); 
    $user->setRoles($t); 
    $em->persist($user); 
    $em->flush(); 
    return new Response('okk'); 

:私は以下のコードを使用しています。どうして?

ありがとうございました。

+1

http://stackoverflow.com/questions/18779655/fosuserbundle-admin-area-not-accessible-after-login 、作成したユーザーには、空の配列がに変換ようにDBに保存されている役割ROLE_USERを持っていますJSON a:0:{} 列の値は空の値か空のjson配列の表現ですか? –

答えて

1

ユーザーテーブルの役割列は、チェックのちょうど役割ROLE_USER

プログラム的な方法でユーザーのための

a:0:{} 

を持つ必要があります。ユーザーが(ROLE_USERをinclusing)特定の役割

if ($this->get('security.context')->isGranted('ROLE_USER')) { 
    // the user has the ROLE_USER role 
} 

を持っている場合

チェックは使用が本当にROLE_USER

php app/console fos:user:promote 
を持っているかどうかを確認倍増する

$user->getRoles() 

もう一つの方法もあります

プロンプトが表示されたら、ユーザ名を入力してからを入力します。

その

ユーザー "[email protected]" すでに持っていた "ROLE_USER" の役割を明記してください。デフォルトでは

0

FOSユーザーバンドルでは、すべてのユーザーがROLE_USERロールを持っています。この役割を追加/保存することは冗長です。

FOSUserBundleのコードベースで探している場合は、ロールはUserInterfaceクラスのROLE_DEFAULTという別名になります。

+0

ありがとうございました。 – appson

関連する問題