2013-07-08 36 views
2

首先,假設我猜這個問題已經解決了,但是我的英語不允許我找到答案。在Sonata Admin Bundle中編輯視圖的過濾器下拉列表

我與Sonata有一個「問題」,當我必須將許多結果關聯起來(例如:將一個正在退出的產品分配給發票)Sonata會生成一個非常大的下拉列表。 有沒有辦法過濾這個列表?

謝謝!

+0

這是否得到解決?圍繞網絡漂浮的信息仍然非常裸露關於此 – Simon

+0

請參閱下面的答案。如果你認爲其他人可以從中受益,也許可以自己問問題(可能是更好的英語),所以我可以回答它,你可以接受它,因爲這個問題似乎已經死了 – Mawcel

回答

-1

您可以有幾種選擇:

  • 您可以使用$formMapper->add('invoice', 'sonata_type_model_list');這將給你一個很好的窗口小部件用於選擇發票關聯。
  • 您可以使用GenemuFormBundle來顯示Select2庫小部件。非常容易整合。只需使用genemu_jqueryselect2_entity類型並將class屬性設置爲您的實體。
+0

問題是如何過濾**下拉菜單。 。 – NDM

1

您應該使用由奏鳴曲提供的表單類型。

如果你想使用sonata_type_model

,你可以通過選擇輸入輸入過濾所有發票的列表。如果你有很多發票,不希望加載它們都使用sonata_type_model_autocomplete

https://sonata-project.org/bundles/admin/master/doc/reference/form_types.html

如果您sonata_type_model輸入不會讓你過濾你應該確認你的奏鳴曲管理的版本使用選擇2並且被正確配置爲使用它

#config.yml 

sonata_admin: 
    options: 
     use_select2: true 
0

雖然這是一個古老的問題,但當我使用這個主題時,我來到了這裏。所以,我的解決方案是:

protected function configureFormFields(FormMapper $formMapper) 
{ 
    $formMapper 
     ->add('city', null, [ 
      'query_builder' => function(EntityRepository $repo) { 
       // Here you should create and return a DQL query 
       // that will filter data the way you want 
       return $repo 
         ->createQueryBuilder('city') 
         ->where('city.country_code = \'US\'') 
         ->orderBy('city.name', 'ASC') 
       ; 
      } 
     ]) 
    ; 
} 
相關問題