2012-05-04 10 views
0

私はこれらの2つのフィールドのいずれかが、少なくとも記入されているかどうかを確認しなければならないので、私は、以下のように私のformに私のカスタムFORM:isvalid()関数を作成する必要があります。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を入手するにはどうすればよいですか? フィールドPZNおよびPZOは、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

関連する問題