想知道如何才能实现创建新用户但指定他的角色。目前,当我创建一个新用户时,程序会自动与 ROLE_ADMIN 角色相关联。
非常欢迎任何信息/代码/示例。
想知道如何才能实现创建新用户但指定他的角色。目前,当我创建一个新用户时,程序会自动与 ROLE_ADMIN 角色相关联。
非常欢迎任何信息/代码/示例。
行。我解决了我的问题。基本上我遵循本指南,并改变了一些方面。
protected $roles = array();
代码:
$user = new UserAdmin();
$builder->add('roles', 'collection', array(
'type' => 'choice',
'options' => array(
'choices' => array(
'nashville' => 'Nashville',
'paris' => 'Paris',
'berlin' => 'Berlin',
'london' => 'London',
),
),
));
现在,当我打开我的注册视图时,它会显示一个下拉列表。在这种情况下,选项是:纳什维尔、巴黎、柏林、伦敦。
这是我使用的代码:
$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 决定默认情况下第一个注册用户是管理员。
James Morris 的解决方案可能会有所帮助: http ://blog.jmoz.co.uk/symfony2-fosuserbundle-roles
更多讨论参见:Symfony2 FOSUserBundle 角色实体