cba*_*scu 8 symfony fosuserbundle
我正在使用FOSUserBundle和Group选项.注册工作.创建小组也是有效的.如果我创建2个组,admin和client,并且手动添加:1:{i:0; s:10:"ROLE_ADMIN";}到fos_group表中的admin组,然后在fos_user_user_group中进行MANULLY设置和输入用户到管理员组,使用该用户登录将能够以管理员身份登录.
然而,这种方法显然存在一些缺点.我现在可以使用什么来将用户添加到组中?使用promote命令行选项只会将角色添加到该用户但在fos_user表中,并且因为我正在使用组,所以我怀疑不再使用fos_user表的roles列.如果它仍然有用,我如何以编程方式将用户分配给组?
我的另一个重要问题是如何为组分配角色.也许我没有得到关于整个群体想法的东西,但我本来希望能够在创建时为群组添加角色,但"新"形式只询问群组名称并且没有似乎存在相当于组的用户提升命令.
谢谢.
Upv*_*ote 14
如何以编程方式将用户分配到组?
$user->addGroup($group);
Run Code Online (Sandbox Code Playgroud)
由于您正在使用FOSUserBundle,因此您的用户实体扩展FOS\UserBundle\Model
了实现GroupableInterface
.所以你的用户类已经有了组方法getGroups, hasGroup($name), addGroup(GroupInterface $group), removeGroup(GroupInterface $group)
.供参考,请访问https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Model/User.php
如何为组分配角色?
$em = $this->getDoctrine()->getEntityManager();
$group = new Group();
$group->setRoles(array());
$group->addRole('ROLE_ACTOR');
$em->persist($group);
$em->flush();
Run Code Online (Sandbox Code Playgroud)
您必须自己实现角色分配,fosuserbundle没有预定义的表单.