Zend form setRequired (true) или addValidator (NotEmpty)

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

->addValidator('NotEmpty') ->setRequired(true) 

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

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