4

我正在尝试在我的 symfony 项目中使用 th MinLength 验证器。

这是我使用它的方式:

use Symfony\Component\Validator\Constraints\MinLength;
class RegisterNewUser
{
    protected $password;


    public static function loadValidatorMetadata(ClassMetadata $metadata)
    {
        if( isset( $metadata->properties["password"] ) ) 
            unset($metadata->properties["password"]);


        $password_blank  = new NotBlank();
        $password_min       = new MinLength(5);


        $password_blank->message    = "The password should not be blank";
        $password_min->message     = "The password is too short. It should have {{ limit }} characters or more";


        $metadata->addPropertyConstraint('password', $password_blank);
        $metadata->addPropertyConstraint('password', $password_min );
    }
}

我收到的错误消息是:

FatalErrorException:错误:在...中找不到类“Symfony\Component\Validator\Constraints\MinLength”

4

2 回答 2

10

我找到了解决方案:

来自 Symfony 文档:

MinLength 约束从 2.1 版本开始被弃用,并将在 Symfony 2.3 中删除。将 Length 与 min 选项一起使用。

所以,解决方案是:

use Symfony\Component\Validator\Constraints\Length;

....

$password_min           = new Length(array('min'=>5));
于 2013-06-04T12:49:32.983 回答
0

长度也被弃用

php.INFO: User Deprecated: Use the "Symfony\Component\Validator\Constraints\Length" 约束和 "min" 选项而不设置 "allowEmptyString" 一个已被弃用,默认为 true。在 5.0 中,它将变为可选并默认为 false。

于 2020-01-17T19:35:53.353 回答