3

我正在尝试将角色添加到可以从数据库管理的 FOSUserBundle 中。我已经阅读了文档并开始研究它,但无论我尝试什么似乎都不起作用。

主要问题: FosUserBundle\Model\User 和 FosUserBundle\Model\UserInterface 将角色定义为数组。我想将它们转换为 ArrayCollection / RoleInterface。

第一次尝试:使用扩展 FOSUserBundle\Model\User 的 Acme\UserBundle\Entity\User 覆盖。但这不起作用,因为我无法覆盖接口中定义的角色函数。

第二次尝试:替换 FOS 用户和用户界面模型,这允许我创建函数和数据库结构,但给我留下了另一个问题。当我这样做时,在 FOSUserBundle 中引用 FOSUserBundle\Model\UserInterface 的所有内容都将无法工作,这意味着我必须覆盖几乎整个包,这看起来不像是你想要做的事情只是为了添加角色。

所以基本上是一个问题:如何将数据库角色添加到 FOSUserBundle 而不必覆盖整个包?

4

1 回答 1

-1

您可以添加所有内容,只需使用

$user->addRole('ROLE_XXXXX');

但是你必须在 security.yml 中定义 ROLE_XXX 注意:当你定义角色时,你必须从 ROLE_YOURROLE 开始

如果您扩展用户之后,您可以定义新功能

public function ListRole(){

         foreach($this->getRoles() as $role){

         }
}
于 2014-12-09T16:54:12.153 回答