使用FOSUserBundle创建新用户失败

时间:2013-01-11 11:25:02

标签: symfony 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并且还没有找到任何解决方案。

有什么想法吗?

2 个答案:

答案 0 :(得分:144)

固定!

我的User实体中有一个自定义构造函数方法。在那里,我忘了用parent::__construct();

调用父的构造函数

答案 1 :(得分:5)

也许它有助于某人。使用bcrypt encoder时可以看到此错误。

Unable to to access index repository http://xxx.xx.xx/minicran/src/contrib

要解决此问题,只需在User类中为salt属性添加映射覆盖(使其可为空)

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

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

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