Zend Framework自定义验证类错误消息 [英] Zend Framework Custom Validation Class Error Message
本文介绍了Zend Framework自定义验证类错误消息的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
验证会失败,但不会返回错误消息.
The validation fails as it should but does not return the error message.
$form->addElement('text', 'phone_number', array(
'required' => true,
'validators' => array(
array('NotEmpty', true, array('messages' => 'Enter a valid Phone Number')),
array('regex', false, array('pattern' => '/\([0-9]{3}\)\s[0-9]{3}-[0-9]{4}/',
'messages' => 'Enter a valid Phone Number'
)),
'CheckPhoneNumber'),
),
));
自定义类:
class Custom_Validators_CheckPhoneNumber extends Zend_Validate_Abstract{
const IN_USE = 'inUse';
protected $_messageTemplates = array(
self::IN_USE => "'%value%' is currently in use"
);
public function isValid($value)
{
$this->_setValue($value);
$user_check = Users::getActive(preg_replace("/[^0-9]/", "", $value));
if($user_check->id){
$this->_error(self::IN_USE);
return false;
}
return true;
}
}
仅失败不会给出"IN_USE"错误.
Just fails does not give the "IN_USE" error.
推荐答案
是仅phone_number元素不显示错误,还是还有其他元素?
Is it only the phone_number element which doesn't display errors or are there others?
您是否使用disableLoadDefaultDecorators
关闭了默认装饰器?
Have you turned off default decorators with disableLoadDefaultDecorators
?
如何在数组中提供自定义验证器?
How about this supplying the custom validator in an array:
$form->addElement(
'text', 'phone_number', array(
'required' => true,
'validators' => array(
array(
'NotEmpty', true, array(
'messages' => 'Enter a valid Phone Number'
)
),
array(
'regex', false, array(
'pattern' => '/\([0-9]{3}\)\s[0-9]{3}-[0-9]{4}/',
'messages' => 'Enter a valid Phone Number'
)
),
array(
'CheckPhoneNumber'
)
)
)
);
这篇关于Zend Framework自定义验证类错误消息的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文