验证以多个元素为条件的表单(它们都不能为空)

时间:2011-01-11 23:01:34

标签: zend-framework forms validation

有没有人有办法在表单中验证zend表单?在我的情况下,多个元素不能为空?

在Symfony中,如果我没记错,有一个帖子验证器可以获取所有提交的表单值并使用它们进行验证。我无法用Zend(1.10)找到类似的东西。

非常感谢任何建议!

2 个答案:

答案 0 :(得分:0)

只需使用附加到元素的自定义验证器:

class My_Validator extends Zend_Validate_Abstract {
    public function isValid( $value, $context = null ) {}
}

您将能够通过$context数组访问所有元素的值 更多信息here,滚动到'注意:验证上下文'。

答案 1 :(得分:0)

我最终重写了Zend_Form :: isValid。

 public function isValid($data)
 {
  $valid = parent::isValid($data);

  $elements = array('username','firstname','lastname');
  foreach($elements as $elementname)
  {
   $element = $this->getElement($elementname);
   if($element->getValue())
   {
    return $valid;
   }
  }
  $this->addErrorMessage('EMPTY_ELEMENTS');
  return false;
 }

PS:我可以使用$ data数组,而不是循环遍历我的元素,其中存储了元素值。