有没有人有办法在表单中验证zend表单?在我的情况下,多个元素不能为空?
在Symfony中,如果我没记错,有一个帖子验证器可以获取所有提交的表单值并使用它们进行验证。我无法用Zend(1.10)找到类似的东西。
非常感谢任何建议!
答案 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数组,而不是循环遍历我的元素,其中存储了元素值。