【问题标题】:How to overwrite Zend_Validator error message?如何覆盖 Zend_Validator 错误信息?
【发布时间】:2012-03-08 16:07:46
【问题描述】:

就像问题标题中描述的那样 - 我希望为所有验证器提供默认错误消息,但 NoRecordExists 除外。

在下面的示例代码中,自定义消息似乎覆盖了所有其他验证器消息,如果例如第二个条件失败(Alnum)用户收到“用户名已使用”错误消息。

$username= new Zend_Form_Element_Text('username');
$username->setLabel('User name:')
->setRequired(TRUE)
->addValidator('NotEmpty',TRUE)
->addValidator('Alnum',TRUE)
->addValidator(new Zend_Validate_Db_NoRecordExists(array(
                    'table'=>'users',
                    'field'=>'username'
                )))
->addErrorMessages(array(
Zend_Validate_Db_NoRecordExists::ERROR_RECORD_FOUND=>'Username already used'
));

【问题讨论】:

标签: php zend-framework validation


【解决方案1】:

尝试将其作为验证器调用的一部分,如下所示:

$username= new Zend_Form_Element_Text('username');
$username->setLabel('User name:')
->setRequired(TRUE)
->addValidator('NotEmpty',TRUE)
->addValidator('Alnum',TRUE)
->addValidator(new Zend_Validate_Db_NoRecordExists(array(
                    'table'=>'users',
                    'field'=>'username',
                    'messages' => array(
                        Zend_Validate_Db_NoRecordExists::ERROR_RECORD_FOUND=>'Username already used')
                )));

这样消息只与这个验证器相关联。

【讨论】:

  • 我只是使用了相同的代码,但未显示“用户名已使用”。如何将这条消息带入已经存在的记录
猜你喜欢
  • 2018-09-14
  • 2018-02-01
  • 1970-01-01
  • 2011-04-28
  • 2019-07-18
  • 2011-07-15
  • 2019-03-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多