1

我有一个带允许字符列表的问题字段:A-Z,0-9,冒号(:),问号(?),逗号(,),连字符( - ),撇号(')。 我有工作正常,在时尚的正则表达式:如何为自定义错误消息的zend表单元素编写自定义验证器?

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

的默认错误信息是一样的东西“””不匹配阻止图形'

我想写一个自定义错误消息说'不允许在这个领域'

是否有一个简单的方法来使用我缺少的现有zend组件做到这一点?

正在编写自定义验证程序是实现我想要实现的唯一方法吗? 如果是的话,我该如何编写一个自定义的验证器(我查看了文档,并不太明白我如何定制错误信息) 如果还有其他方法,我也会非常感谢。

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

回答

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; 
}