Zend_Filter_Input и пустые значения - PullRequest
0 голосов
/ 15 июля 2009

Я использую Zend_Filter_Input для проверки данных формы и хочу настроить сообщения об ошибках, если пользователь не вводит значение. Важно, чтобы каждое поле получало свое сообщение об ошибке.

В Zend Framework 1.8.0 я использовал следующий массив для параметра «validator» Zend_Filter_Input:

$validators = array(
    'salutation' => array(
        new Zend_Validate_NotEmpty(),
        Zend_Filter_Input::MESSAGES => array(
            Zend_Validate_NotEmpty::IS_EMPTY => "Please enter a salutation"
        )
    ),
    /* ... */
);

Поскольку я обновился до ZF 1.8.4, я всегда получаю сообщение по умолчанию для пустых полей («Необходимо указать непустое значение для поля«% field% »»). Очевидно, Zend_Filter_Input больше не вызывает валидатор Zend_Validate_NotEmpty, если поле пустое.

Есть ли способ изменить это поведение или получить индивидуальные «пустые» сообщения для каждого поля?

Ответы [ 3 ]

1 голос
/ 13 августа 2009

Поведение не изменилось. Это ошибка (http://framework.zend.com/issues/browse/ZF-7394)

1 голос
/ 20 июля 2009

Кажется, что Zend_Filter_Input изменил свое поведение при обработке пустых полей. Пустые поля никогда не обрабатываются валидаторами правил. Если поле пустое и allowEmpty установлено в true, ни один из ваших валидаторов не используется. Если поле пустое и allowEmpty установлено в false, то устанавливается сообщение по умолчанию для пустых значений. В настоящее время нет способа настроить это сообщение для определенного поля.

0 голосов
/ 27 февраля 2012

попробуйте это:

    $validators = array(
        'salutation' => array('NotEmpty', Zend_Filter_Input::MESSAGES => 'Please enter a salutation')
        );

Не знаю почему, но, похоже, они изменили константу "isEmpty" на "NotEmpty" (без включения ее в класс Zend_Validate_NotEmpty). Иногда я просто схожу с ума от Zend. :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...