2009-07-15 4 views
0

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

С Zend Framework 1.8.0 Я использовал следующий массив для параметра «валидатор» из 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, я всегда получаю сообщение по умолчанию пусто fields («Вы должны указать не пустое значение для поля«% field% »). Очевидно, Zend_Filter_Input больше не вызывает валидатор Zend_Validate_NotEmpty, если поле пуст.

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

+0

Вы действительно смешиваете фильтр и проверяете? У них совершенно разные purpouses ... –

+0

И вы используете Zend_Filter_Input :: MESSAGES, не проверяя сообщения - это может быть проблемой. –

ответ

1

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

+0

С Zend Framework 1.8.4 Я все еще получаю сообщение по умолчанию. – uberboom

+0

Получаете ли вы сообщение по умолчанию для отсутствующего поля или сообщения по умолчанию NotEmpty-Validator? – Flo

+0

Я изменил ответ после некоторых исследований по этой теме. – Flo

0

попробовать это:

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

Я не знаю, почему, но, кажется, они изменили константу «IsEmpty» с «NotEmpty» (без включения его в классе Zend_Validate_NotEmpty) , Иногда я просто схожу с орехами с Зендом. :)

Смежные вопросы