如何将数据库角色添加到FOSUserBundle

时间:2013-10-27 14:26:06

标签: php symfony roles fosuserbundle

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

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

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

第二次尝试:更换FOS用户界面和用户界面模型,这些模型允许我创建函数和数据库结构,但又给我留下了另一个问题。当我这样做时,引用FOSUserBundle \ Model \ UserInterface的FOSUserBundle中的所有内容将无法工作,这意味着我必须覆盖几乎整个捆绑包,这似乎不是你想要添加角色的东西。< / p>

所以基本上问题是:如何在不必覆盖整个捆绑包的情况下将数据库角色添加到FOSUserBundle?

1 个答案:

答案 0 :(得分:-1)

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

$user->addRole('ROLE_XXXXX');

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

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

public function ListRole(){

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

         }
}