3

我无法看到以下 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).')
        ),
)),

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

任何人?

提前致谢。

4

1 回答 1

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.')),

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

于 2010-01-23T08:27:18.290 回答