在验证器中更新Zend表单元素值

时间:2012-11-01 10:08:14

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

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

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

如果没有,考虑到我只想运行一次外部工具,会有什么好处?

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

1 个答案:

答案 0 :(得分: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;
  }
}