2013-01-11 32 views
46

我想创建命令行一个新用户即可获得此错误:创建具有FOSUserBundle新用户无法

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,但还没有找到任何解决方案。

任何想法?

回答

143

固定!

我在我的用户实体中有一个自定义的构造函数方法。在那里,我忘记打电话给家长的构造与parent::__construct();

5

也许它可以帮助某人。使用bcrypt编码器时可以看到此错误。

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

为了解决这个问题,只需添加映射覆盖盐属性,为用户类(使其可为空)

use FOS\UserBundle\Model\User as BaseUser; 
use Doctrine\ORM\Mapping as ORM; 

/** 
* @ORM\Entity 
* @ORM\AttributeOverrides({ 
* @ORM\AttributeOverride(
*  name="salt", 
*  [email protected]\Column(name="salt", type="string", nullable=true) 
*  ) 
* }) 
*/ 
class User extends BaseUser { 
    ... 
} 

OR:不要忘记更新架构。如果在作曲家更新后发生错误!

bin/console doctrine:schema:update --force 
相关问题