Symfony2 - MinLength验证不起作用 - 未找到MinLength

时间:2013-06-04 12:43:13

标签: php forms validation symfony

我正在尝试在我的symfony项目中使用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'

2 个答案:

答案 0 :(得分:10)

我找到了解决方案:

来自Symfony文档:

  

自版本2.1起,MinLength约束已弃用,将在Symfony 2.3中删除。请使用长度和最小选项。

所以,解决方案是:

use Symfony\Component\Validator\Constraints\Length;

....

$password_min           = new Length(array('min'=>5));

答案 1 :(得分:0)

长度也被弃用

php.INFO:不建议使用的用户:将“ Symfony \ Component \ Validator \ Constraints \ Length”约束与“ min”一起使用 不设置“ allowEmptyString”的选项不建议使用,默认为true。在5.0中,它将变为可选 并默认为false。