0

想知道如何才能实现创建新用户但指定他的角色。目前,当我创建一个新用户时,程序会自动与 ROLE_ADMIN 角色相关联。

非常欢迎任何信息/代码/示例。

4

3 回答 3

6

行。我解决了我的问题。基本上我遵循指南,并改变了一些方面。

  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 决定默认情况下第一个注册用户是管理员。

于 2012-05-30T10:14:35.480 回答
1

James Morris 的解决方案可能会有所帮助: http ://blog.jmoz.co.uk/symfony2-fosuserbundle-roles

更多讨论参见:Symfony2 FOSUserBundle 角色实体

于 2013-01-08T09:27:21.850 回答