2015-01-05 3 views
2

양식 클래스를 사용하여 만드는 양식이 있습니다. 이 양식의 한 필드는 country_id로 텍스트 필드에 국가 ID를 부여합니다.양식에 매핑을 추가하는 방법

그러나 대신 모든 ID를 사용하는 대신 해당 ID로 매핑 된 국가 이름을 사용하여 선택 필드를 만들고 싶습니다.

데이터베이스에 국가 ID와 이름을 매핑하는 테이블이 있습니다. 그러나이 양식은 하나의 엔티티 만 사용하며이 엔티티는 사용하지 않습니다.

여기 다른 표를 사용하여 선택하려면 어떻게해야합니까? 이 문제를 어떻게 해결할 수 있습니까?

감사합니다.

편집 :

내부 전체 방법의
public function buildForm(FormBuilderInterface $builder, array $options) 
    { 
     $builder->add('name', 'text', ['required' => false]) 
      ->add('address', 'text', ['required' => false]) 
      ->add('zipCode', 'text', ['required' => false]) 
      ->add('city', 'text', ['required' => false]); 

     $builder->add('country', 'entity', [ 
      'class' => 'AcmeBundle:Country', 
      'property' => 'shortName', 
      'required' => false, 
     ]); 

     // $builder->add('country', 'text', ['required' => false]); 

     $builder->add('number', 'text', ['required' => false]); 
    } 

,의는, 푸 개체를 호출 할 수 있습니다. ID로 값을 갖는 적절한 HTML을 생성하지만 주석에 언급 된 오류가 여전히 있습니다.

+0

. 그것도 추가하십시오. – ferdynator

+0

엔티티는 db – khernik

답변

2

entity Field Type이 필요합니다. 귀하의 FormType는 다음과 같이한다 : 당신은 당신의 엔티티를 당신의 FormType을하지 추가 한

$builder->add('country', 'entity', array(
    'class' => 'YourBundle:Country', 
    'property' => 'name', 
)); 

Checkout the docs for more info.

+0

에서 생성되었습니다. 하지만이 이름을 id에 매핑하면 기본 형식으로 엔티티에 삽입 할 수 있습니다. – khernik

+2

''property '=>'name ''이 무엇을 의미합니다. 국가 이름이 표시되지만 ID가 데이터베이스에 저장됩니다. – ferdynator

+0

True이고 모든 값이 올 바르지 만 "Contry 엔터티 유형의 개체를 int로 변환 할 수 없습니다"라는 메시지가 나타납니다. 왜 이렇게이다? – khernik

관련 문제