Zend Framework: Как установить собственный валидатор для элемента формы? - PullRequest
3 голосов
/ 23 декабря 2008

Я пишу пользовательский валидатор, который проверяет, что хотя бы одно поле имеет значение. Я хочу проверить, что либо «namefield», либо «idfield» имеет значение. Один из них может быть пустым или оба могут иметь значение, но по крайней мере один из них должен иметь значение.

$nameField = new Zend_Form_Element_Hidden('namefield');
$nameField->setValue($this->nameFieldValue)
          ->addValidator('AtLeastOneHasValue', false, array('idfield'));

Из того, что я понимаю, мой валидатор не будет проверяться, пока я не установлю для своего элемента формы обязательный параметр.

->setRequired(true)

Но если я установлю его как обязательный, он автоматически проверяет, что он не пустой, и в сообщении об ошибке говорится, что он пустой. Я хочу, чтобы поле было пустым, и проверять несколько полей с помощью моего пользовательского валидатора. Как проверить элемент формы с помощью моего пользовательского валидатора, не устанавливая для элемента формы обязательный параметр?

1 Ответ

6 голосов
/ 23 декабря 2008

Проверьте эту страницу документации для метода setAllowEmpty (). Это должно помочь вам добраться туда, куда вы пытаетесь пойти.

setAllowEmpty ($ flag) и getAllowEmpty () позволяет вам изменять поведение необязательных элементов (т.е. элементы, где требуется флаг ложный). Когда «пусто» флаг равен true, пустых значений не будет передается в цепочку валидатора.

...