![](/img/trans.png)
[英]Symfony2/Doctrine: how to add more of the same entity in the same collection?
[英]Symfony2: how to add a Doctrine Entity Array to FormBuilder
我正在使用Symfony和Doctrine,我有一個可以根據特定條件選擇行的函數:
$entities = $repository->getSomeEntities();
現在,我想在選擇列表中呈現這些實體,我檢查了entity
FormType,但無法實現所需的功能。
例:
$builder->add('id','entity', array(
'class' => 'Path\To\Entity',
'property' => 'id'
));
上面的代碼可以正常工作,只不過它選擇了所有實體。
我檢查了Symfony文檔http://symfony.com/doc/current/reference/forms/types/entity.html ,看來實現此目的的唯一方法是使用query_builder選項,該選項不適用於我的情況
無論如何,有沒有將$entities
數組作為選擇列表添加到我的表單中?
看到您實現ChoiceListProvider
。 Symfony
內置了許多實現,但是您可能需要像SimpleChoiceListProvider
這樣簡單的東西。
EntityManager
實例傳遞給表單(通過構造函數或選項) choice
而不是entity
choice_list
設置為new MySimpleChoiceLIstProvider($this->entityManager)
您可以(可能將)不只是將EntityManager
傳遞給提供程序,正如您所說的“將根據特定條件選擇行”。 如果該條件源自表單本身,則可能應該通過FormEvents
,這將使您可以訪問數據對象。
希望這可以幫助。
使用您編寫的內容,沒有任何理由QueryBuilder無法正常工作。
你應該有這樣的東西:
$builder
->add('fieldname', 'entity', array(
'class' => 'Path\to\Entity',
'query_builder' => function(\Doctrine\ORM\EntityRepository $er) {
return $er->yourFunction();
},
'required' => true
))
使用“ yourFunction”作為存儲庫的功能,例如“ getSomeEntities”。
您能告訴我們為什么它不起作用嗎? 謝謝
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.