2012-03-26 88 views
0

如何在實體之間的多對多關係中實現搜索表單。在manyToMany關係接口中添加搜索表單

我想從實體中搜索項目,然後將它們添加到我的其他實體。我正在使用需要鏈接到商店的一系列商品(產品),而且我無法使用簡單的列表框來選擇我的商品。

我需要你指點我的教程或任何解釋來處理這個接口問題。

我們的目標是用最少的javascript

+0

你可以使用一個選擇字段類型與多個選項。 – windm 2012-03-28 16:51:30

+0

我有近10000個項目...在這種情況下,選擇字段將不起作用。 我需要首先篩選結果以避免產生太多項目 – Chopchop 2012-03-29 08:22:51

回答

0

我花了很多的時間試圖找出最佳的解決方案之間做出重新的可用性,性能和人機工程學的妥協,我發現了一個很好的解決方案

我沒有這樣說:

  • 我創建了一個自定義表單字段顯示類似實體上的字段類型的集合,但我通過,我想在一個不錯的表格,顯示的字段名稱:

    ->add('products','reflist',array(
          'columns'=>array('name','cost','description'), 
          'actions'=>array('select'=>true,'remove'=>true), 
          'entityName'=>'VendorProductBundle:Product', 
          'searchForm'=> 'Vendor\ProductBundle\Form\ProductSearchType' 
        ));

  • 然後我創建了一個通用搜索服務,它接受輸入要搜索的實體。結果以彈出分頁形式發送。

  • 最後,我創建了與我的新領域的控制器來管理操作,如添加,刪除

那的它的邏輯。

我真的不能分擔工作,因爲它確實是依賴我的框架(取決於搜索服務,佈局,等等)的

0

我建議創建一個視圖,你可以選擇一個類別或定義搜索條件。而第二個視圖中,您只能按先前選擇的條件顯示產品。在你的第二個觀點,你可以使用一個entity Field Typehttp://symfony.com/doc/current/reference/forms/types/entity.html#query-builder)和實體提供自定義查詢,如:

use Doctrine\ORM\EntityRepository; 
// ... 
$builder->add('users', 'entity', array(
    'class' => 'AcmeHelloBundle:Product', 
    'query_builder' => function(ProductRepository $er) { 
     return $er->createQueryBuilder('p') 
       ->where('p.category = 1); 
    }, 
)); 

該解決方案不需要JavaScript的。

+0

聽起來像是我正在搜索的東西。感謝您的回答。我檢查它 – Chopchop 2012-04-03 14:33:44