2012-05-04 72 views
0

我在form像下面創建我的自定義FORM:isvalid()功能,因爲我要檢查,如果這2個領域之一是至少填寫:Zend的形式:自定義驗證isValid()的

class Products_AddForm extends Zend_Form { 

public function isValid($data) 
{ 

    // Check special post data 
    $pzn_val = $data['PZN']; 
    $mar_val = $data['PZO']; 

    if(empty($pzn_val) && empty($mar_val)) { 
     $this->getSubForm('sub1')->getElement('PZN')->setErrors(array('PZN or PZO needed')); 
     $this->getSubForm('sub2')->getElement('PZO')->setErrors(array('PZN or PZO needed')); 
    } 

    // Standard validation 
    return parent::isValid($data); 

} 

的錯誤PZNPZO只會在發現另一個錯誤(其他字段)時觸發。 我如何獲得form error? 字段PZNPZO定義爲not required

TIA 馬特

回答

4

嘗試:

public function isValid($data) { 
    $isValid = parent::isValid($data); 
    // Check special post data 
    $pzn_val = $data['PZN']; 
    $mar_val = $data['PZO']; 

    if(empty($pzn_val) && empty($mar_val)) { 
     $this->getSubForm('sub1')->getElement('PZN')->setErrors(array('PZN or PZO needed')); 
     $this->getSubForm('sub2')->getElement('PZO')->setErrors(array('PZN or PZO needed')); 
     $isValid = false; 
    }  

    return $isValid; 
} 
+0

唉唉。非常感謝你的幫助。這很容易... – frgtv10

+0

很高興知道它的工作。您可以將其標記爲已接受的答案.. :) –

+0

需要等待5分鐘...'您可以在5分鐘內接受答案'^^ – frgtv10