Исключение роли регистрации Symfony2 FOSUserBundle - PullRequest
2 голосов
/ 28 сентября 2011

Я новичок в 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 я вижу, что это вызвано пустым массивом с ролями, но я действительно не знаю, где его найти или что мне добавить в конфиги или где-то еще.

Я не переопределил никаких контроллеров, только шаблон для регистрации, но я думаю, что использую правильный.

Спасибо за ответы.

Ответы [ 4 ]

1 голос
/ 11 января 2013

Я получил точно такую ​​же ошибку, но я решил эту проблему с помощью перегрузки конструктора класса пользователя

 public function __construct(){    
     $this->groups = new \Doctrine\Common\Collections\ArrayCollection();
     return parent::__construct();
 }
1 голос
/ 02 февраля 2012

Хорошо, я обнаружил, в чем проблема - я не добавил Role для Group. Так что в FOSUserBundle каждый Group должен иметь Role, вот и все.

1 голос
/ 16 мая 2012

Я не уверен, что моя проблема была точно такой же, но, по крайней мере, она была похожей. Сообщение об ошибке было таким же. После долгих поисков я, наконец, понял, что пошло не так, и оглядываясь назад, на самом деле было очевидной ошибкой.

Единственное, что мне нужно было сделать, это добавить следующую строку в функцию __constructor пользовательского класса:

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

Возможно, это не было решением OPers, но, возможно, оно может помочь кому-то еще!

1 голос
/ 27 ноября 2011

Я удалил метод getGroups и addGroups из своего пользовательского класса пользователя, и он решил проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...