2

Я новичок в zend framework 2, и у меня есть вопрос о сравнении двух входов в заводской форме. Мой сценарий выглядит следующим образом:zend framework 2 - сравнить 2 входа с использованием валидатора?

Я хочу сравнить два входа, например, $startDate и $endDate. Я хочу подтвердить, что $startDate всегда меньше $endDate. Как я собираюсь это сделать? Например:

$inputFilter->add($factory->createInput(array(
       'name'  => 'startDate', 
       'required' => true, 
       'validators' => array(
        array(
         'name' => 'LessThan', 
         'options' => array(
          'max'  => $endDate, 
         ), 
        ), 
       ), 
      ))); 

FYI, я после учебник альбома и $inputFilter создается в classTable.php.

Thanks

+0

или это другой способ достичь этого? Спасибо ... – tekmin

+0

Вы можете использовать валидатор обратного вызова аналогично этому ответу -> http://stackoverflow.com/questions/17529906/zf2-validation-how-can-i-validate-dependent-fields/17532467# 17532467 – Crisp

+0

Большое спасибо. Работает! – tekmin

ответ

4

Благодаря Crisp! Я решил это с чем-то похожим:

$inputFilter->add($factory->createInput(array(
      'name'  => 'startDate', 
      'required' => true, 
      'name'  => 'Callback', 
       'options' => array(
        'message' => array( 
         Callback::INVALID_VALUE => 'Invalid period is given.', 
        ), 
        'callback' => function($value, $context=array()) { 
         return $value < $context['endDate']; 
        }, 
       ), 
      ))); 
+1

Ключевое «имя» упоминается дважды –

0

Ответ на этот вопрос, вероятно, будет правильным, но может возникнуть некоторый синтаксис или может произойти ошибка обратного вызова. Причина в том, что мы обычно используем функцию проверки обратного вызова в моделях InputFilters, а не в разделе определения форм (с Zend Framework версии 2.2.1).

Этот обратный вызов сценария часть должна прийти внутри модели - InputFilters, пожалуйста, обратитесь по ссылке: https://stackoverflow.com/a/19263037/2190889

В соответствии с этим URL ссылки, проверка даты часть работает отлично.

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

  • Нет связанных вопросов^_^