2012-03-26 8 views
0

エンティティ間の多対多の関係で検索フォームを実装する方法。manyToMany関係インターフェースで検索フォームを追加

エンティティからアイテムを検索して、他のエンティティにアイテムを追加したいとします。私はショップにリンクする必要があるアイテム(製品)の長いリストを使用しています。アイテムを選択するために単純なリストボックスを使用することはできません。

私はこのインタフェースの問題に対処するためのチュートリアルや説明を教えてください。

目標は、私はあなたがカテゴリを選択するか、検索条件を定義することができビューを作成することをお勧めjavascriptの

+0

(検索サービス、レイアウト、等...の依存します)。 – windm

+0

私はほぼ10 000のアイテムを持っています...この場合、選択フィールドは機能しません。 多くのアイテムを必要としないように、最初に結果をフィルタリングする必要があります – Chopchop

答えて

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

の最小値を使用することです。以前に選択した条件で製品を表示するだけの2番目のビュー。このソリューションは、すべてではJavaScriptを必要としない

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); 
    }, 
)); 

:2番目のビューでは、entity Field Typehttp://symfony.com/doc/current/reference/forms/types/entity.html#query-builder)を使用することができますなどのエンティティのためのカスタムクエリを提供しています。

+0

それは私が探しているもののように聞こえます。ご回答有難うございます。私はそれをチェックする – Chopchop

関連する問題