Symofony Building Subform

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

$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)}}) но я не могу получить эту переменную.

Как я могу сделать это правильно?

Спасибо за помощь.

0

Решение

Вы заявили, что вы 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 юридическое лицо

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]