47

我正在尝试从命令行创建一个新用户并收到此错误:

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

当尝试通过在 web 界面上注册来创建用户时,我得到了这个:

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

使用现有用户登录即可。还更新配置文件和更改密码。仅仅创建新用户是行不通的。

我在一个非常简单的设置中使用 v 1.3.1,但还没有找到任何解决方案。

有任何想法吗?

4

2 回答 2

144

固定的!

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

于 2013-01-11T11:57:17.607 回答
6

也许它可以帮助某人。使用 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",
 *      column=@ORM\Column(name="salt", type="string", nullable=true)
 *      )
 *  })
 */
class User extends BaseUser {
     ...
}

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

bin/console doctrine:schema:update --force
于 2016-12-06T02:11:01.117 回答