如何覆盖Zend_Validator错误信息?

时间:2012-03-08 16:07:47

标签: php zend-framework validation

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

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

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

1 个答案:

答案 0 :(得分: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')
                )));

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