Я пытаюсь создать специальную форму, прежде всего, у меня есть форма о профессионале, и у нее есть опыт работы как собственность. Я добавляю эти значения в мою форму:
$builder->add('job_company');
$builder->add('job_position');
Проблема в том, что я хочу иметь возможность генерировать несколько событий с помощью кнопки.
Я должен использовать CollectionType для симфонии, но я не знаю, нужно ли мне создавать другую специальную форму для опыта, поэтому, когда я нажимаю на кнопку, я создаю эти входные данные с другим именем (это имя должно отличаться, если я хочу проверить их).
Я пытался использовать:
->add('experiences', CollectionType::class, array(
'entry_type' => TextType::class,
'allow_add' => true,
'allow_delete' => true,
))
Но когда я пытаюсь сделать это ({{ form_widget(form.experiences)}}
), Я получаю эти ошибки:
AppBundle \ Entity \ ProfessionalExperience не удалось преобразовать в строку
Я тоже пробовала ({{ form_widget(form.experiences.company)}}
) но я не могу получить эту переменную.
Как я могу сделать это правильно?
Спасибо за помощь.
Вы заявили, что вы experiences
подчиненная форма TextType
, следовательно
{{ form_widget(form.experiences)}}
пытается создать простой <input/>
поле и установите его значение. Значение ввода — простая строка, пока вы предоставляете AppBundle\Entity\ProfessionalExperience
пример. Вот почему вы получаете эту ошибку.
Вы не хотите, чтобы это было TextType
, Это должен быть какой-то класс формы ExperienceType
,
->add('experiences', CollectionType::class, array(
'entry_type' => ExperienceType::class,
'allow_add' => true,
'allow_delete' => true,
))
И вы, конечно, должны создать такой класс формы с полями, подходящими для вашего AppBundle\Entity\ProfessionalExperience
юридическое лицо
Других решений пока нет …