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

Zend framework 验证以多个元素为条件的表单(它们都不能为空),zend-framework,forms,validation,Zend Framework,Forms,Validation,是否有人可以在表单中验证zend表单?在我的情况下,多个元素不能为空 在Symfony中,如果我没记错的话,有一个post-validator,您可以获取所有提交的表单值并使用它们进行验证。我在Zend(1.10)中找不到类似的东西 非常感谢您的建议 只需使用附加到元素的自定义验证器即可: class My_Validator extends Zend_Validate_Abstract { public function isValid( $value, $context = null

是否有人可以在表单中验证zend表单?在我的情况下,多个元素不能为空

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


非常感谢您的建议

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

class My_Validator extends Zend_Validate_Abstract {
    public function isValid( $value, $context = null ) {}
}
您可以通过
$context
数组访问所有元素的值。

更多信息,请滚动到“注意:验证上下文”。

我最终覆盖了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数组存储元素值,而不是循环遍历元素。

谢谢Vika。我最终覆盖了Zend_Form::isValid。公共函数isValid($data){$valid=parent::isValid($data);$elements=array('username','firstname','lastname');foreach($element作为$elementname的元素){$element=$this->getElement($elementname);$if($element->getValue()){return$valid;}$this->addErrorMessage('EMPTY_elements');return false;})PS:我本可以使用$data数组存储元素值,而不是循环遍历元素。