У меня есть элемент select следующим образом, и я хочу сделать его необязательным. Но я не могу этого сделать. Это дает мне ошибку «требуется значение и не может быть пустым»Zend framework 2 form select element set required false
$this->add(array(
'name' => 'civil_status',
'type' => 'Select',
'attributes' => array(
'id' => 'civil_status',
'class' => 'form-control',
),
'options' => array(
'empty_option' => 'Civil status',
'value_options' => array(
'married' => 'Married',
'single' => 'Single',
'other' => 'other',
),
)
));
Я поставил проверку следующим
$this->inputFilter->add($factory->createInput(array(
'name' => 'civil_status',
'required' => FALSE,
'allow_empty' => TRUE,
'filters' => array(
array('name' => 'StripTags'),
),
'validators' => array(
array(
'name' => 'StringLength',
'options' => array(
'encoding' => 'UTF-8',
'min' => '2',
'max' => '255',
),
),
),
)));
Я пытался удалить требуется от входного фильтра, как описано выше, и даже больше я попытались удалить требуемую проверку с контроллера также следующим образом. Но ничего не работает. Пожалуйста, дайте мне знать, если вы, ребята, знаете, чтобы исправить эту проблему.
$form->getInputFilter()->get("civil_status")->setRequired(FALSE);
$form->getInputFilter()->get("civil_status")->setAllowEmpty(TRUE);
Попробуйте удалить валидатор? –
@RemiThomas Можете ли вы показать мне путь? – Ruwantha
Вы можете удалить в свой массив свой входной фильтр. Или как этот путь $ form-> getInputFilter() -> get ("civil_status") -> remove ("StringLength"); –