Forms Symfony表单验证问题

Forms Symfony表单验证问题,forms,symfony1,validation,symfony-1.4,Forms,Symfony1,Validation,Symfony 1.4,我看不出下面的Symfony 1.4表单验证有什么问题。基本上,我只想正确考虑所有四个条件(必需、最小长度、最大长度、正则表达式)。它实际上可以工作,但对于“必需”条件,它无法显示我的自定义错误消息,而只是说“必需”。有没有办法让我的错误信息显示出来 'username' => new sfValidatorAnd(array( new sfValidatorString( array('required' => true, 'min_length' =>

我看不出下面的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).')
        ),
)),
还有一件事,如果我删除Regex验证器并将其转换为普通的单行字符串验证器,我的自定义错误消息会显示

有人吗


提前感谢。

大约两周前,我注意到了同样的问题,并找到了解决方案-只需将您的邮件移动到
sfvalidator和
声明:

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

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

达曼,非常感谢!在花了太多时间试图解决它之后,让它与您的解决方案一起工作。上面的代码给了我一个错误,所以我用“array()”替换了“NULL”,从而清除了错误。。。。这也意味着可以删除SFValidator字符串中的第一个“required”子句。再次感谢。@Tom,不客气。我为将来会遇到相同问题的用户修复了答案。不确定您是否有意这样做,但[A-z0-9]将匹配您可能不想要的字符(在“Z”和“A”之间是“[”、“\”、“]”、“^”和“\”)。随机尝试了其中一个,并感到惊讶。