我想在表單中顯示覆選框的動態列表。如何使用Symfony 2中的ChoiceListInterface?
到目前爲止,我構建了一個嵌入靜態複選框列表的表單,並且我爲不同語言的不同值創建了一個Tag實體,並填充了數據庫。我想用基於Tag實體的動態列表替換靜態複選框。
documentation說我應該使用ChoiceListInterface。但它的記錄確實很差。你會有一個例子或全球邏輯解釋來幫助我嗎?
我想在表單中顯示覆選框的動態列表。如何使用Symfony 2中的ChoiceListInterface?
到目前爲止,我構建了一個嵌入靜態複選框列表的表單,並且我爲不同語言的不同值創建了一個Tag實體,並填充了數據庫。我想用基於Tag實體的動態列表替換靜態複選框。
documentation說我應該使用ChoiceListInterface。但它的記錄確實很差。你會有一個例子或全球邏輯解釋來幫助我嗎?
您可以擴展LazyChoiceList抽象類並實現loadChoiceList()方法,創建它的服務,將它注入到窗體中並將其設置爲choice_list
選項。
最後,我用了一個實體字段類型:
->add('tags', 'entity', array(
'class' => 'bndMyBundle:Tag',
'query_builder' => function(EntityRepository $er){
return $er->createQueryBuilder('t')
->orderBy('t.en', 'ASC');
},
'expanded' => true,
'multiple' => true,
'property' => 'en',
))
然後,我只需要通過用戶的當前語言環境來替換成「en」值來選擇合適的語言。
謝謝,但這看起來很難實施;我沒有在Google上找到這樣的例子:( – Yako
@Yako這很容易。像這樣:http://stackoverflow.com/questions/13313415/symfony2-populate-choice-list-from-api-data :) – Tek