【问题标题】:How do I write a custom validator for a zend form element with customized error messages?如何为带有自定义错误消息的 zend 表单元素编写自定义验证器?
【发布时间】:2010-04-13 14:17:19
【问题描述】:

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

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

默认的错误信息类似于 ''' does not match against pattern ''

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

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

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

感谢您抽出宝贵时间回答这个问题!

【问题讨论】:

    标签: php zend-framework zend-form zend-form-element zend-validate


    【解决方案1】:

    是的,自定义验证器符合您的需求。写法请参考manual

    关于代码 sn-p,这是一个用于验证雇主 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;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-02
      • 1970-01-01
      • 2012-08-22
      • 2011-10-30
      • 1970-01-01
      • 1970-01-01
      • 2012-12-11
      • 1970-01-01
      相关资源
      最近更新 更多