1

我有一个包含允许字符列表的问题字段:AZ、0-9、冒号 (:)、问号 (?)、逗号 (,)、连字符 (-)、撇号 (')。我有正常工作的正则表达式,时尚:

 $question->addValidator('regex', true, array(<regular expresstion>))

默认错误消息类似于 ''' 与模式 '' 不匹配

我想写一条自定义错误消息,上面写着“此字段中不允许”

有没有一种简单的方法可以使用我缺少的现有 zend 组件来做到这一点?

编写自定义验证器是实现我想要实现的目标的唯一方法吗?如果是,我该如何编写自定义验证器(我查看了文档并且不太明白如何自定义错误消息)如果有任何其他方式,我也非常感谢该输入。

感谢您花时间回答这个问题!

4

1 回答 1

2

是的,自定义验证器符合您的需求。关于如何编写,请参阅本手册

关于代码片段,这里有一个简单的验证器(部分)用于验证雇主 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;
}
于 2010-04-14T03:48:58.970 回答