2015-02-06 3 views
1

Guog를 사용하여 Symfony 2 응용 프로그램 내부의 API에서 데이터를 가져옵니다. 이러한 데이터는 내 모델에 올바르게 매핑됩니다. 모델은 일부 속성이있는 Contact 개체입니다. 내가하기 위해 자사의 buildForm 기능을 가진 ContactType을 만든 typevalue양식 필드에 사용자 정의 객체의 Symfony2 배열

class ContactMethod { 

/** 
* @SerializedName("type") 
* @Type("string") 
*/ 
private $type; 

/** 
* @SerializedName("value") 
* @Type("string") 
*/ 
private $value; 

... setters and getters ... 

: 그 특성 중 하나는 두 가지 속성이 있습니다이

/** 
* @SerializedName("methods") 
* @Type("array<My\Bundle\Model\ContactMethod>") 
*/ 
private $methods; 

ContactMethod 객체처럼 수행 ContactMethod의 배열입니다 폼에 Contact의 모든 속성을 표시합니다. 그러나 속성을 표시 할 때는 ContactMethod 각각에 TextInput을 입력하고 그 입력은 type을 레이블로 사용하고 value을 값으로 사용해야합니다.

class ContactType extends AbstractType { 
public function buildForm(FormBuilderInterface $builder, array $options = array()) 
{ 
    $builder 
     ->add(...all the other simple fields...) 
     ->add(...what shall I add here ?) 
나는이 반대 방식으로 작동 할 필요가

: 모든 텍스트 입력가 작성 및 제출 될 때, 필드 그래서 난 다시 일련 화 및에 데이터를 다시 보낼 수 있습니다 ContactMethod의 배열로 함께 포장 할 수있다 API

사용자 정의 양식 유형 및 데이터 변환기로 놀려고했지만 솔루션을 찾을 수 없습니다.

답변

0

귀하의 연락처 개체는이 서비스로 선언하거나 new MethodListType() 않다면, 그래서 그냥 속성 methods과 그 유형 (예를 들어) "method_list"를 추가 한 ContactType에 매핑됩니다.

목록은 동적이므로 새 유형에 대한 고유 한 buildView 메소드를 작성해야합니다.

관련 문제