我在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或其他地方。
我没有覆盖任何控制者,只有注册模板,但我认为我使用的是正确的。
感谢您的回答。
答案 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();
}