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\Doctrine - 检索用户角色

Symfony2 在 Twig 中获取用户角色

Symfony2:在 FormBuilder 中获取用户角色列表

Symfony2 - 显示动态可选角色

使用 FosUserBundle symfony2 管理多个角色

在 Symfony2 中动态添加角色