Symfony2 FOSUserBundle注册角色例外

时间:2011-09-28 18:18:23

标签: php symfony

我在Symfony2中很新,我试图使用FOSUserBundle,大部分工作正常,但是当我尝试注册时,我总是得到相同的结果:

Warning: Invalid argument supplied for foreach() in /var/www/own/envelope/vendor/bundles/FOS/UserBundle/Model/User.php line 372
500 Internal Server Error - ErrorException

在Stack Trace中,我可以看到这是带有Roles的空数组,但我真的不知道我在哪里可以找到它或者我应该添加到configs或其他地方。

我没有覆盖任何控制者,只有注册模板,但我认为我使用的是正确的。

感谢您的回答。

4 个答案:

答案 0 :(得分:1)

我从自定义用户类中删除了方法getGroups和addGroups,它解决了问题。

答案 1 :(得分:1)

好的,我确实发现了什么问题 - 我没有为Role添加任何Group。因此,FOSUserBundle每个Group必须有一个Role,就是这样。

答案 2 :(得分:1)

我不确定我的问题是否完全相同,但至少它是相似的。错误消息是相同的。在搜索了几个小时后,我终于明白了什么问题并且回头看它实际上是一个明显的错误。

我唯一要做的就是将以下行添加到用户类的__constructor函数中:

$this->groups = new \Doctrine\Common\Collections\ArrayCollection();

它可能不是OPers解决方案,但也许它可以帮助别人!

答案 3 :(得分:1)

我得到完全相同的错误,但我通过构造函数重载用户类

解决了这个问题
 public function __construct(){    
     $this->groups = new \Doctrine\Common\Collections\ArrayCollection();
     return parent::__construct();
 }