使用FOSUserBundle创build新用户失败

我试图从命令行创build一个新的用户,并得到这个错误:

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

当试图通过在web界面注册创build一个用户时,我得到这个:

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

使用已经存在的用户login即可。 还更新configuration文件并更改密码。 只是创build新用户不起作用。

我在一个非常简单的设置中使用v 1.3.1,还没有find任何解决scheme。

有任何想法吗?

固定!

我在我的用户实体中有一个自定义的构造函数方法。 在那里,我已经忘记调用父母的构造函数与parent::__construct();

也许它有助于某人。 使用bcrypt编码器时可以看到这个错误。

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

要解决这个问题,只需在你的User类中添加Salt属性的映射覆盖(使其可以为空)

 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 { ... } 

或者:不要忘记更新您的架构。 如果在composer php更新后发生错误!

 bin/console doctrine:schema:update --force