Symfony表单验证问题

Tom*_*Tom 3 forms validation symfony1 symfony-1.4

我无法看到以下Symfony 1.4表单验证可能出错的地方.基本上,我只想要所有四个条件都被正确考虑(必需,最小长度,最大长度,正则表达式).它实际上是可行的,但对于"必需"条件,它无法显示我的自定义错误消息,而只是说"必需".有没有办法让我的错误信息显示出来?

'username' => new sfValidatorAnd(array(
    new sfValidatorString(
        array('required' => true, 'min_length' => 4, 'max_length' => 20), 
        array('required' => 'Please enter a username.', 'min_length' => 'Your username must have at least 4 characters.', 'max_length' => 'Your username cannot be longer than 20 characters.')
        ),
    new sfValidatorRegex(
        array('pattern' => '/^[A-z0-9]*$/i'),
        array('invalid' => 'Your username can only have letters (A-Z) or numbers (0-9).')
        ),
)),
Run Code Online (Sandbox Code Playgroud)

另外一件事,如果我删除正则表达式验证器并将其转换为普通的单行字符串验证器,我的自定义错误消息确实显示!?

任何人?

提前致谢.

Dar*_*yev 6

两周前我已经注意到同样的问题并找到了解决方案 - 只需将您的消息移至sfValidatorAnd声明:

'username' => new sfValidatorAnd(array(
    new sfValidatorString(
        array('required' => true, 'min_length' => 4, 'max_length' => 20), 
        array( 'min_length' => 'Your username must have at least 4 characters.', 'max_length' => 'Your username cannot be longer than 20 characters.')
        ),
    new sfValidatorRegex(
        array('pattern' => '/^[A-z0-9]*$/i'),
        array('invalid' => 'Your username can only have letters (A-Z) or numbers (0-9).')
        ),
), array(), array('required' => 'Please enter a username.')),
Run Code Online (Sandbox Code Playgroud)

这对我有所帮助,我希望它对你也有帮助.