Symfony1 Don';验证程序返回错误时不显示列名

Symfony1 Don';验证程序返回错误时不显示列名,symfony1,symfony-1.4,validation,Symfony1,Symfony 1.4,Validation,我有以下代码: $this->form->setValidators(array( 'email' => new sfValidatorAnd( array( new sfValidatorEmail(array(), array( 'invalid' => 'Enter a valid email address.',)), new sfValidatorDoct

我有以下代码:

$this->form->setValidators(array(
    'email'   => new sfValidatorAnd(
        array(
            new sfValidatorEmail(array(), array(
                'invalid' => 'Enter a valid email address.',)),
            new sfValidatorDoctrineUnique(array(
                'model'=>'Users',
                'column'=>'email',
                ), array(
                'invalid' => 'This email is already being used.',
                )),
        ),
        array(),
        array(
                'required' => 'Required',
        )
    ),
//...
当电子邮件不唯一时,它会返回以下错误:
电子邮件:此电子邮件已被使用。
但我不希望邮件前面出现
电子邮件:

有没有办法停止显示列名


我能得到一些帮助吗?

这是sfValidatorDoctrineUnique的一个特殊功能,因此可能需要在多个列上测试唯一性

您必须重写doClean()方法以防止此行(在末尾):

进一步资料:


您可以将
抛出全局错误
选项传递给
sfValidatorDoctrineUnique
,以便抛出错误而不显示

  new sfValidatorDoctrineUnique(
    array('throw_global_error' => true, 'column' => 'email'),
    array('invalid' => 'Custom message')
  )
希望对你有帮助


最好的注意。

我使用它,当使用
sfValidatorDoctrineUnique时它会显示列名
Yes-你是对的,问题是由sfValidatorDoctrineUnique的doClean方法引起的:抛出新的sfValidatorErrorSchema($this,array($columns[0]=>$error));Imho唯一的解决方案是覆盖此方法。
  new sfValidatorDoctrineUnique(
    array('throw_global_error' => true, 'column' => 'email'),
    array('invalid' => 'Custom message')
  )