Zend framework 验证以多个元素为条件的表单(它们都不能为空)
是否有人可以在表单中验证zend表单?在我的情况下,多个元素不能为空 在Symfony中,如果我没记错的话,有一个post-validator,您可以获取所有提交的表单值并使用它们进行验证。我在Zend(1.10)中找不到类似的东西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
非常感谢您的建议 只需使用附加到元素的自定义验证器即可:
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数组存储元素值,而不是循环遍历元素。