如果用户未输入值,我正在使用Zend_Filter_Input
来验证表单数据并希望自定义错误消息。重要的是每个字段都会收到不同的错误消息。
使用Zend Framework 1.8.0,我使用以下数组作为Zend_Filter_Input
的“validator”参数:
$validators = array(
'salutation' => array(
new Zend_Validate_NotEmpty(),
Zend_Filter_Input::MESSAGES => array(
Zend_Validate_NotEmpty::IS_EMPTY => "Please enter a salutation"
)
),
/* ... */
);
由于我已升级到ZF 1.8.4,因此我总是得到空字段的默认消息(“您必须为字段'%field%'提供非空值”)。显然Zend_Filter_Input
如果字段为空,则不再调用Zend_Validate_NotEmpty
验证程序。
有没有办法改变这种行为或其他方式为每个字段获取自定义的“空”消息?
答案 0 :(得分:1)
似乎Zend_Filter_Input
在处理空字段时改变了它的行为。空字段永远不会被规则验证程序处理。如果字段为空且allowEmpty设置为true,则不使用任何验证器。如果该字段为空且allowEmpty设置为false,则设置空值的默认消息。目前无法为特定字段自定义此消息。
答案 1 :(得分:1)
行为没有改变。这是一个错误(http://framework.zend.com/issues/browse/ZF-7394)
答案 2 :(得分:0)
试试这个:
$validators = array(
'salutation' => array('NotEmpty', Zend_Filter_Input::MESSAGES => 'Please enter a salutation')
);
我不知道为什么,但似乎他们用“NotEmpty”改变了常量“isEmpty”(不包括在Zend_Validate_NotEmpty类中)。 有时我只是坚持Zend。 :)