0

新しいユーザーの作成をどのように達成できるかを知りたいが、彼の役割を指定したい。現時点では、新しいユーザーを作成すると、プログラムはROLE_ADMINロールに自動的に関連付けられます。

どんな情報/コード/例でも大歓迎です。

4

3 に答える 3

6

Ok。問題を解決しました。基本的に私はこのガイドに従い、いくつかの側面を変更しました。

  1. 私のモデルでは、ロールのフィールドを追加しました:protected $roles = array();
  2. Form/Type/RegistrationFormType.php を変更し、次のコントロールを配置します。

コード:

$user = new UserAdmin();
    $builder->add('roles', 'collection', array(
        'type'   => 'choice',
        'options'  => array(
            'choices'  => array(
                'nashville' => 'Nashville',
                'paris'     => 'Paris',
                'berlin'    => 'Berlin',
                'london'    => 'London',
            ),
        ),
));

登録ビューを開くと、ドロップダウンリストが表示されます。この場合のオプションは、ナッシュビル、パリ、ベルリン、ロンドンです。

于 2012-05-31T03:39:04.070 に答える
4

これは私が使用したコードです:

    $admin = new User() ;
    $admin->setEmail("adminl@gmail.com") ;
    $admin->setUsername("mitke") ;
    $admin->setPlainPassword("123123123") ;
    $admin->setEnabled(true) ;
    $admin->setSuperAdmin(true) ;

    $user1 = new User() ;
    $user1->setEmail("user1@gmail.com") ;
    $user1->setUsername("user1") ;
    $user1->setPlainPassword("123123123") ;
    $user1->setEnabled(true) ;
    $user1->setRoles( array(User::ROLE_DEFAULT) ) ;

多分それはあなたを助けることができます、それは私のために働きます.

質問: /register を使用して作成したすべてのユーザーは、管理者の役割を持っていますか? おそらく、FOS は、最初に登録されたユーザーがデフォルトで admin になると決定します。

于 2012-05-30T10:14:35.480 に答える
1

James Morris の解決策が役立つかもしれません: http://blog.jmoz.co.uk/symfony2-fosuserbundle-roles

詳細については、次を参照してください: Symfony2 FOSUserBundle Role エンティティ

于 2013-01-08T09:27:21.850 に答える