Ошибка Symfony в необязательном поле формы

#php #symfony #symfony-forms

#php #symfony #symfony-forms

Вопрос:

У меня есть следующая форма в Symfony 2.7:

 $form = $this->createFormBuilder($entity)
            ->add('laboratorio',null, array('required'=>false)->getForm();
  

«laboratorio» — это поле типа entity. Но когда я отправляю форму без выбора значения, я получаю следующую ошибку:

 An exception occurred while executing 
'SELECT n0_.id AS id0, n0_.codigo AS codigo1,
n0_.nombre AS nombre2 FROM nom_laboratorio 
n0_ WHERE n0_.id IN (?)' with params [""]:
  

Я думаю, что Symfony не должен пытаться найти объект по его идентификатору, когда необязательное поле пустое.

Даже я пытаюсь использовать $this-> submit($request, true) вместо $this-> handleRequest($request) в контроллере, но ничего не меняется.

Есть что-то, что я игнорирую?

Ответ №1:

Комментарии:

1. empty_data работает только с допустимым целочисленным значением. Я помещаю в лоток новый пустой экземпляр класса, но ничего.

2. Что именно происходит, когда вы выбираете опцию «Выбрать лабораторию»?

3. При ’empty_data’ => null ошибка базы данных удаляется.

4. Я пробовал empty_data placeholder в Symfony 2.7, и это сделало свое дело. В Symfony < 2.6 вы должны использовать empty_value вместо заполнителя. Пожалуйста, убедитесь, что в параметр post передается значение null, если вы выбираете параметр placeholder / empty_value.