0

我有一个自定义 Zend Validate 类扩展Zend_Validate_Abstract
验证器是一个文件验证器,它运行一个外部命令行工具来验证和处理文件。

如果文件无效,则没有问题。但是如果文件是有效的,我可以Zend_Form_Element_File用命令行工具返回的一些信息以某种方式编辑验证器操作的值吗?

如果没有,考虑到我只想运行外部工具一次,什么是一个好的解决方法?

解决这个想法
,我可以创建一个运行命令行工具的 Zend 过滤器,使用解析信息更新值,包括错误。然后我让验证器简单地检查值数组是否包含过滤器留下的错误?

4

1 回答 1

2

为什么不将元素传递给验证器:

class CustomFileValidator extends Zend_Validate_Abstract {
  public $element = null;

  public function isValid($value) {
        //run external tool
        //check response, validity checks
        //...
        //modify the element if valid. e.g.:
        $this->element->setValue('');
  }

  public setElement(Zend_Form_Element $element) {
      $this->element = $element;
  }
}
于 2012-11-01T14:33:42.300 回答