Zend форма setRequired (true) или addValidator (NotEmpty) - PullRequest
12 голосов
/ 06 октября 2010

Есть ли реальная разница между поведением или выводом этих 2. Они выглядят так, будто делают одно и то же.

->addValidator('NotEmpty')   

->setRequired(true)

1 Ответ

18 голосов
/ 06 октября 2010

Да, есть разница. Если элемент не требуется, он будет проверяться, даже если в данных, по которым вы проверяете, отсутствует полное значение. Значение проверяется только с зарегистрированными валидаторами после того, как определено, что оно существует. NotEmpty Валидатор не будет работать, только если поле присутствует, но оно пустое.

Кроме того, нет необходимости добавлять валидатор NotEmpty самостоятельно, по умолчанию Zend автоматически вставляет валидатор NotEmpty для элементов, если элемент требуется. Таким образом, эффективное выполнение ->setRequired(true) такое же, как выполнение ->setRequired(true)->addValidator('NotEmpty'). Вы можете отключить это поведение с помощью ->setAutoInsertNotEmptyValidator(false).

...