2016-08-27 5 views
1

Symfony 2(2.8.9)で生成されたフォームのselect(selected = "selected")にデフォルト値を設定する際に問題があります。symfony2がEntityTypeで選択されました

私は私のコントローラで、このコードを持っている:

$news = new News(); 
$news->setCategory(1); 
//create form 
$form = $this->createForm(NewsType::class, $news); 

そして、この私にformTypeで

public function buildForm(FormBuilderInterface $builder, array $options) 
{ 
    $builder->add('category', EntityType::class, 
      array(
       'placeholder' => 'Choise', 
       'class' => 'AppBundle:NewsCat', 
       'choice_label' => 'name' 
      )); 
} 

AppBundle:NewsCat IDのリストを作成する=>名前(例:1 =>「スポーツ'、2 =>' Politic 'など)、私はsetCategory(1)を選択すると、選択した "スポーツ"が選択されたものとして見えるようにしたいと思っています。

今私は "Choise"を見る。

私はあなたが私を助けることを願って、ウェブ上のどこでも検索しようとしています:)全て

HTML code screen

答えて

0

感謝を選択したオブジェクトを設定するためのデータ・オプションを使用する必要があります。下の私の例。

$defaultTech = $company->getDefaultTech(); 
if ($company->getForceDefaultTech() && $defaultTech != null) { 
    $builder->add('tech', HiddenType::class, ['data' => $defaultTech->getId()]); 
} else { 
    $builder->add('tech', EntityType::class, [ 
     'class' => 'HelpBundle\Entity\UserAccount', 
     'choice_label' => 'displayName', 
     'data' => $defaultTech, 
     'query_builder' => function (EntityRepository $er) use ($company) { 
      $qb = $er->createQueryBuilder('ua'); 
      return $qb 
       ->where('ua.company = :company') 
       ->andWhere('ua.techie = 1') 
       ->setParameter('company', $company); 
     }, 
    ]); 
} 
関連する問題