2017-03-01 10 views
0

私はドロップダウンオプションを提供するためにentityを呼び出しています。私はプレースホルダ値を設定しました。私はデータの値を設定しようとしましたが、プレースホルダの値に関係なく、常に選択されたタグです。Symfonyエンティティタイプで選択値を設定できません、プレースホルダが選択されました

マイPostFormType:それは、ユーザーによって変更する必要がある場合は、プロパティartistためdataを設定するべきではありません

パブリック関数buildForm(FormBuilderInterface $ビルダー、配列$オプション) {

$builder 
     ->add('title', TextType::class, array('attr' => array(
      'class' => 'form-control' 
     ))) 
     ->add('price', TextType::class, array('attr' => array(
      'class' => 'form-control' 
     ))) 
     ->add('artist', EntityType::class, [ 
      'data'=>2, 
      'placeholder'=>'Choose Artist', 
      'class'=>Artist::class, 
      'choice_label'=>'artist', 
      'query_builder'=> function (EntityRepository $er) { 
       return $er->createQueryBuilder('artist') 
        ->orderBy('artist.artist', 'ASC'); 
      }, 

      'empty_data' => null, 
      'attr' => array(
       'class' => 'form-control' 
      ) 
     ]) 

     ->add('userId', HiddenType::class) 
     ->add('description', TextareaType::class, array('attr' => array(
      'class' => 'form-control' 
     ))) 
     ->add('purchaseDate','date') 
     ->add('id',HiddenType::class) 
    ; 
} 

答えて

0

フォーム。

新しいエンティティのデフォルト値を設定したい場合。たとえそれを行っても、data属性は、提出後に提供された値を2にリセットするため、UIフォームからの変更は影響を受けません。

EntityConstructorを使用して、デフォルト値を設定することができます。

ただし、artistは参照プロパティです。フォームを作成する前に、Controllerでそれを行う必要があります。

$artist = $em->getRepository("AppBundle:Artist")->find(2); 
$entity->setArtist($artist) 
// Load the form here. The default value automatically set in the form 

これが役立ちます。

関連する問題