La création d’un nouvel utilisateur avec FOSUserBundle échoue

J’essaie de créer un nouvel utilisateur à partir de la ligne de commande et d’obtenir cette erreur:

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

Lorsque j’essaie de créer un utilisateur en m’inscrivant sur l’interface Web, j’obtiens ceci:

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

La connexion avec un utilisateur déjà existant fonctionne. Mise à jour d’un profil et modification du mot de passe. La création de nouveaux utilisateurs ne fonctionne pas.

J’utilise la version 1.3.1 dans une configuration très simple et je n’ai pas encore trouvé de solution.

Des idées?

Fixé!

J’avais une méthode de constructeur personnalisée dans mon entité utilisateur. J’avais oublié d’appeler le constructeur du parent::__construct(); avec parent::__construct();

Peut-être que ça aide quelqu’un. Vous pouvez voir cette erreur lorsque vous utilisez bcrypt encoder.

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

Pour résoudre ce problème, ajoutez simplement un remplacement de mappage pour l’atsortingbut salt dans votre classe User (rendez-le nullable).

 use FOS\UserBundle\Model\User as BaseUser; use Docsortingne\ORM\Mapping as ORM; /** * @ORM\Entity * @ORM\AtsortingbuteOverrides({ * @ORM\AtsortingbuteOverride( * name="salt", * column=@ORM\Column(name="salt", type="ssortingng", nullable=true) * ) * }) */ class User extends BaseUser { ... } 

OU: n’oubliez pas de mettre à jour votre schéma. Si une erreur survient après la mise à jour du compositeur!

 bin/console docsortingne:schema:update --force