2015-01-08 2 views
0

나는 배열 필드 데이터 (doctrine 배열)가있는 엔티티가 있습니다. 이 엔터티에 대한 심포니 폼을 만들고 싶습니다.이 필드를 포함 시키길 원합니다.Symfony의 사용자 정의 양식 필드 유형

그럼, 질문 : 양식 필드로 사용자 정의 유형을 사용할 수있는 방법이 있습니까?

$dates = array(
     'birthday' => \DateTime('1995'), 
     'wedding' => \DateTime('2001'), 
     // and so on 
    ) 
+0

추가 참조 자세한 내용은 $builder->add('dates', 'json_array_type')

같은 양식 유형에서 사용할 수 있습니다 귀하의 질문을 설명하는 몇 가지 코드 : 데이터 덤프, 당신이 이미 만든 폼 타입 등 ... – Ziumin

+0

[Symfony assotiative array form field] 중복 가능 (http://stackoverflow.com/questions/27830586/symfony-assotiative-array -form-field) – phpisuber01

+0

@Ziumin 내 편집을 확인하십시오 – Jay

답변

1

을 지금까지 아무 내장이 없기 때문에 :

public function buildForm(FormBuilderInterface $builder, array $options) 
    { 
     $builder 
      ->add('dates') // i want to use ->add('dates','array') but type 'array' is not allowed 
     ; 
    } 

이 데이터는 내가 저장할 수 있습니다 :

/** 
* @var array 
* 
* @ORM\Column(name="dates", type="array") 
*/ 
private $dates; 

이 formType입니다 :

는 양식 필드입니다 데이터 유형에서 사용자 정의 유형을 추가해야합니다. 배열 < -> json transformation을 할 수있는 DataTransformer으로 간단한 텍스트 필드 (TextType)를 확장하는 것만으로 충분합니다.

사용자 정의 유형은 YourBundle\Form\Type\JSONArrayType입니다. 당신이 당신의 번들 설정에 등록해야합니다 일반 필드로 양식에이 기능을 사용하려면

json_array_type.service: 
class: YourBundle\Form\Type\JSONArrayType 
tags: 
    - { name: form.type, alias: json_array_type } 

을 그리고 당신은 How to Create a Custom Form Field Type

+0

감사합니다! 그게 내가 찾는거야. – Jay

관련 문제