2008-12-23 124 views
3

我在写一个自定义验证器,检查至少有一个字段有值。我想验证'namefield'或'idfield'是否有价值。其中一个可以是空的,或者两个都可以有一个值,但至少有一个必须有一个值。Zend Framework:如何在表单元素上设置自定义验证器?

$nameField = new Zend_Form_Element_Hidden('namefield'); 
$nameField->setValue($this->nameFieldValue) 
      ->addValidator('AtLeastOneHasValue', false, array('idfield')); 

从我的理解,我的验证器不会验证,除非我将我的表单元素设置为required。

->setRequired(true) 

但是,如果我将它设置为required,它会自动验证它不是空的,并且错误消息说它是空的。我想允许该字段为空,并使用我的自定义验证程序验证多个字段。我如何使用自定义验证器验证表单元素,而不将表单元素设置为required?

回答

6

检查this documentation page为setAllowEmpty()方法。这应该可以帮助你找到你想去的地方。

器setAllowEmpty($ flag)和 getAllowEmpty()让你修改 可选元素的行为 (即元素,其中所需要的 标志是假的)。当'允许空' 标志为真时,空值将不会被传送到验证器链的 。

+1

- > setAllowEmpty(false) 这正是我所需要的。谢谢! – Andrew 2008-12-24 00:33:46

相关问题