2017-01-16 2 views
0

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

$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 could not be converted to string

Я также пытался ({{ form_widget(form.experiences.company)}}), но я могу Получаем эту переменную.

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

Благодарим за помощь.

ответ

1

Вы заявили, что вы 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 лица

+0

Он отлично работает спасибо вам –

Смежные вопросы