Создание нового пользователя с FOSUserBundle завершается неудачно

45

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

Warning: array_search() expects parameter 2 to be array, null given
in /vendor/friendsofsymfony/user-bundle/FOS/UserBundle/Model/User.php line 368  

При попытке создать пользователя, зарегистрировавшись через webinterface, я получаю следующее:

SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'salt' cannot be null

Работа с уже существующим пользователем работает. Также обновление профиля и изменение пароля. Просто создание новых пользователей не работает.

Я использую v 1.3.1 в очень простой настройке и еще не нашел решения.

Любые идеи?

Теги:
fosuserbundle

2 ответа

141
Лучший ответ

Фиксированный!

У меня был пользовательский метод конструктора в моем объекте User. Там я забыл вызвать родительский конструктор с parent::__construct();

6

Может быть, это поможет кому-то. Вы можете увидеть эту ошибку при использовании кодировщика bcrypt.

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню