Создание нового пользователя с FOSUserBundle завершается неудачно
Я пытаюсь создать нового пользователя из командной строки и получить эту ошибку:
Warning: array_search() expects parameter 2 to be array, null given
in /vendor/friendsofsymfony/user-bundle/FOS/UserBundle/Model/User.php line 368
При попытке создать пользователя путем регистрации через веб-интерфейс я получаю это:
SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'salt' cannot be null
Вход с уже существующим пользователем работает. Также обновление профиля и смена пароля. Просто создание новых пользователей не работает.
Я использую v 1.3.1 в очень простой настройке и пока не нашел никакого решения.
Есть идеи?
2 ответа
Исправлена!
У меня был пользовательский метод конструктора в моей сущности User. Там я забыл вызвать конструктор родителя с parent::__construct();
Может быть, это кому-то поможет. Вы можете увидеть эту ошибку при использовании bcrypt encoder.
SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'salt' cannot be null
Чтобы решить эту проблему, просто добавьте переопределение сопоставления для атрибута salt в вашем классе User (сделайте его обнуляемым)
use FOS\UserBundle\Model\User as BaseUser;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity
* @ORM\AttributeOverrides({
* @ORM\AttributeOverride(
* name="salt",
* column=@ORM\Column(name="salt", type="string", nullable=true)
* )
* })
*/
class User extends BaseUser {
...
}
ИЛИ: не забудьте обновить свою схему. Если ошибка произошла после обновления композитора!
bin/console doctrine:schema:update --force