3

我正在编写一个自定义验证器来检查至少一个字段是否有值。我想验证“namefield”或“idfield”是否有值。其中之一可以为空,或者两者都可以有值,但至少其中之一必须有值。

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

据我了解,除非我将表单元素设置为必需,否则我的验证器不会验证。

->setRequired(true)

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

4

1 回答 1

6

检查此文档页面以获取 setAllowEmpty() 方法。这应该可以帮助您到达您想要去的地方。

setAllowEmpty($flag) 和 getAllowEmpty() 允许您修改可选元素的行为(即,所需标志为假的元素)。当“允许空”标志为真时,空值将不会传递到验证器链。

于 2008-12-23T00:41:01.967 回答