0

これらの 2 つのフィールドのいずれかが少なくとも入力されているかどうかを確認する必要があるため、以下のようにカスタムFORM:isvalid()関数を作成する必要があります。form

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ます。

ティアマット

4

1 に答える 1

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;
}
于 2012-05-04T08:59:19.087 に答える