デフォルト値の設定中にフォームビルダーに問題があります。マップされていないリストを作成し、次のようにデフォルト値を設定したいと思います。
->add('kuponaiSuppliers', 'entity', array(
'class' => 'CMSBundle:KuponaiUsers',
'label'=> "Supplier:",
'data'=>5,
'query_builder' => function(EntityRepository $er) use ($options) {
return $er->createQueryBuilder('ku')
->select("ku")
->andWhere("ku.delDate is null")
->andWhere("ku.id > 1");
},
'property'=> 'name',
'multiple' => false,
'expanded' => false,
'required' => true,
'mapped' => false
))
しかし、私の見解では、選択されたオプションなしでリストされているだけです。
<select id="acme_cmsbundle_kuponaimain_kuponaiSuppliers" name="acme_cmsbundle_kuponaimain[kuponaiSuppliers]">
<option value="2">Supplier 1</option>
<option value="5">Supplier 2</option>
<option value="6">Supplier 3</option>
</select>
データ属性はデフォルト値を設定する必要があると思いましたが、そうではありません。
小枝コード:
<tr>
<td colspan="3">{{ form_label(form.kuponaiSuppliers) }}{{ form_widget(form.kuponaiSuppliers) }}</td>
</tr>
デフォルトにしたいオブジェクトの参照を取得する必要があります。
'data' => $this->em->getReference("CMSBundle:KuponaiUsers", 5) // 5 will be the default.
$this->em
エンティティマネージャを指します。可能性が$this->getDoctrine()->getManager()
コントローラーに。
FormTypeクラスを使用している場合は、エンティティマネージャーを挿入する必要があります。コントローラでフォームを作成している場合は、問題なくエンティティマネージャにアクセスできます。
メソッドEntityManager#getReference($ entityName、$ identity)を使用すると、データベースからエンティティをロードしなくても、識別子がわかっているエンティティへの参照を取得できます。
動作するはずです。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加