Symfony2 用户角色 (BETA2)
Posted
技术标签:
【中文标题】Symfony2 用户角色 (BETA2)【英文标题】:Symfony2 User Roles (BETA2) 【发布时间】:2011-09-02 04:52:18 【问题描述】:将用户添加到角色的适当方法是什么.. 对于每个新用户,我必须这样做:
$em->getRepository('MyBundle:Role')->findOneBy(array('name' => 'ROLE_USER'))
每次?
我不太喜欢 UserBundle 有多大……而且我不使用 XML。我正在使用 YML/Annotations,所以 UserBundle 对于某些事情很难遵循。
那么,是的,进行用户注册并将他与默认角色相关联的最佳/最干净的方法是什么?
【问题讨论】:
【参考方案1】:我发现的最简单的方法就是将roles
定义为您的用户对象上的array
类型的字段。然后,当您创建用户(注册或其他)时,它就像
$roles = array('ROLE_USER');
$user->setRoles($roles);
我已经在this gist 中汇总了我的用户注册过程模型。它的功能并不完整(如果需要,我可以在以后充实它),但它应该能让你指向正确的方向。
【讨论】:
请注意,gist 中的示例是针对 Beta2 的;如果您使用的是以前的版本,有些东西会有所不同(例如注释) 是的,它看起来和我正在做的一样。【参考方案2】:我写了几篇关于角色的博文,一个简单的解决方案http://blog.jmoz.co.uk/symfony2-fosuserbundle-roles 和http://blog.jmoz.co.uk/symfony2-fosuserbundle-role-entities
【讨论】:
以上是关于Symfony2 用户角色 (BETA2)的主要内容,如果未能解决你的问题,请参考以下文章
Symfony2:在 FormBuilder 中获取用户角色列表