$inputFilter->add(array(
'name' => 'seatingCapacity',
'required' => TRUE,
'filters' => array(
array('name' => 'Int'),
),
));
В моей доктрине доктрины у меня есть метод getInputFilter
, который я использую для проверки формы. Вышеприведенный фрагмент кода для одного из входных элементов. Моя проблема: required => true
не работает, даже если я отправлю пустую форму.zf2 doctrine form int required not working
После исследования я узнал, что Int
фильтр преобразует пустой вход в 0
и подает его, и именно поэтому required
валидатор не работает. Мне просто нужны причины, почему это может не работать.
Для справки, где я искал
Zend Framework 2 - Integer Form Validation
, где он предлагает использовать Between
валидатор
$inputFilter->add($factory->createInput(array(
'name' => 'zip',
'required' => true,
'filters' => array(
array('name' => 'Int'),
),
'validators' => array(
array(
'name' => 'Between',
'options' => array(
'min' => 1,
'max' => 1000,
)
)
)
)
));
Я хочу знать, почему я должен использовать Between
и почему required
не удается.
Похоже, вы ответили на свой вопрос. «... и поэтому« обязательный »валидатор не работает» – srayner
Я не тестировал вещь (так что это скорее комментарий, чем ответ), но вы не можете использовать (сочетание) значение [to null ] (http://framework.zend.com/manual/current/en/modules/zend.filter.set.html#tonull), [is int] (http://framework.zend.com/manual/current /en/modules/zend.i18n.validator.int.html) валидатор и [не пусто] (http://framework.zend.com/manual/current/en/modules/zend.validator.not-empty.html) валидатор? –