0

我必须在下面创建我的自定义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);

}

PZN和的错误PZO只会在找到另一个错误(其他字段)时触发。我怎样才能得到form error?场PZNPZO定义为not required

TIA 马特

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 回答