2008-12-23 122 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

相關問題