Symofny-“密码”不能为null

时间:2018-07-06 09:00:54

标签: php api symfony passwords

我已经实现了在注册api调用中检查密码长度的功能。

if($password){
    $this->validatePassword($password);
    }

通过其他api调用。

public function validatePassword($password)
{
    if (strlen($password) < 6)
    {
        throw new PasswordLength('Password must be minimum 6 characters long!');
    }
}

在邮递员中,我没有返回空字段,但我不断收到错误消息

  

违反完整性约束:1048列“ password”不能为空

2 个答案:

答案 0 :(得分:0)

在symfony中,plainPassword字段仅用于将用户的“新”密码携带到一种将其编码并将其设置为password的方法中。

在填充password字段之后,然后将plainPassword字段空白,以便没有明文凭证保存到数据库。这可以通过调用已实现的eraseCredentials方法(在所需的UserInterface中找到)来完成。或者,您可以使plainPassword方法在用户类中保持不变。

看看here这些文档以了解如何进行所有操作。

文档显示了应该是用户管理器实用程序类的摘录。使用它来设置和更新密码以及创建新用户。

有一个更完整的解释here,其中从头到尾解释了整个过程。

答案 1 :(得分:0)

解决了!

if($password){
    $this->validatePassword($password);
}

$user->setPassword($password);