Zend Form: Пользовательский валидатор isvalid()

Я должен создать свой заказ FORM:isvalid() функция в моем form как ниже, потому что я должен проверить, заполнено ли хотя бы одно из этих 2 полей:

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? поле PZN а также PZO определяются как not required,

ТИА Мэтт

1 ответ

Решение

Пытаться:

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;
}
Другие вопросы по тегам