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;
}