2017-01-16 6 views
0

Im은 특별한 양식을 만들려고 노력합니다. 우선 나는 전문가에 관한 양식을 가지고 있으며 재산으로서의 경험이 있습니다. 그 값을 제 양식에 추가합니다 :Symofony building subform

$builder->add('job_company'); 
$builder->add('job_position'); 

문제는 버튼으로 여러 개의 경험을 생성 할 수 있기를 원합니다. Symphony의 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

그것은 완벽한 감사를 작동 –