Zend Framework: как установить собственный валидатор для элемента формы?

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

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

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

->setRequired(true)

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


person Andrew    schedule 23.12.2008    source источник


Ответы (1)


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

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

person leek    schedule 23.12.2008
comment
- ›setAllowEmpty (false) Это как раз то, что мне нужно. Спасибо! - person Andrew; 24.12.2008