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