2016-08-10 7 views
2

どうすればthis.iにカテゴリとスキルなどの2つの選択フィールド(エンティティ)があるかを確認してください。スキルフィールドをカテゴリに依存させたい、つまりカテゴリを選択した場合、スキルのオプションはそのカテゴリに関連するスキルでなければなりませんが、カテゴリが選択されていない場合、フィールドのオプションはすべてのスキルでなければなりません。symfony 3フォームの2つの入力フィールドを関連付ける方法

NOTE以下のコードは、JUST ILLUSTRATIONのためのものであり

public function buildForm(FormBuilderInterface $builder, array $options) 
{ 


    $builder 
     if (a value is selected from 
      (->add('category', EntityType::class, array(
      'class'=>'AppBundle:Category', 
      'choice_label'=>'name' 
      )))) 
     { 
       present skills based on the selected category as 

       (->add('skill', EntityType::class, array(
        'class'=>'AppBundle:Skill', 
        'choice_label'=>'name', 

        'query_builder' => function (EntityRepository $er) { 
         return $er->createQueryBuilder('s') 
          ->select('s') 
          ->where('c = :category') 
          ->setParameter('category', $value selected from category); 
        }, 

       ))) 
}else{ 

->add('skill', EntityType::class, array(
    'class'=>'AppBundle:skill', 
    'choice_label'=>'name' 
    )) 

}あなたは、フォームのイベントの加入者を使用する必要があり

+0

多くの重複を。 – Alsatian

答えて

1
+0

正しい方向にポイントをありがとう。指示に従った後にこのエラーが表示されます**選択フィールドに渡されたエンティティは管理する必要があります**あなたは手伝ってもらえますか?この質問の詳細はここにあります[http://stackoverflow.com/questions/7473872/entities-passed-to-the-choice-field-must-be-managed] –

+0

'EntityManager :: merge()'を使うと、仕事は? – DOZ

+0

ここではエンティティマージを使用しますか –

関連する問題