我有一个带有允许字符列表的问题字段:A-Z,0-9,冒号(:),问号(?),逗号(,),连字符( - ),撇号(')。 我的正则表达式很好,时尚:
$question->addValidator('regex', true, array(<regular expresstion>))
默认错误消息类似于'''与模式''
不匹配我想写一条自定义错误消息,上面写着“此字段中不允许”
使用我缺少的现有zend组件有一种简单的方法吗?
编写自定义验证器是实现我想要实现的目标的唯一途径吗? 如果是,我如何编写自定义验证器(我查看了文档并且不太了解如何自定义错误消息) 如果还有其他方式,我也非常欣赏这一点。
感谢您抽出宝贵时间来回答这个问题!
答案 0 :(得分:2)
是的,自定义验证器符合您的需求。关于如何编写,请参阅此manual。
关于代码片段,这里是一个用于验证雇主ID的简单验证器(部分)
protected $_messageTemplates = array(
self::UNIQUE => 'The id provided is already in use',
);
public function isValid($value, $context = null)
{
$this->_setValue($value);
$personnel = new Personnel();
$isValid = true;
if( $personnel->isExistingIdEmployee($value) && ($value != $this->_id) ) {
$this->_error(self::UNIQUE);
$isValid = false;
}
return $isValid;
}