2016-10-07 21 views
1

私はsymfony2のfos_restバンドルとMySQLのDoctrineを使ってオブジェクトをフィルタリングするAPIを設計しようと考えています。 私はいくつかのプロパティを持つ異なるエンティティとの関係を持つマスターエンティティを持っているとしましょう。 フロントエンドでは、フィルタを作成して、関連するエンティティのプロパティでマスターエンティティをフィルタリングできるようにしたいと考えています。それはどのように実行可能でしょうか?Symfony2 + Doctrine、関係で見つけよう

たちは

+---------------+ 
| Master Entity | 
+----+----------+ 
| id | name  | 
+----+----------+ 
| 1 | Apple | 
+----+----------+ 
| 3 | Berry | 
+----+----------+ 


+-------------------+ 
| Property Entity | 
+----+------+-------+ 
| id | id_m | value | 
+----+------+-------+ 
| 1 | 1 | green | 
+----+------+-------+ 
| 2 | 1 | yello | 
+----+------+-------+ 
| 3 | 1 | red | 
+----+------+-------+ 
| 4 | 3 | pink | 
+----+------+-------+ 

を持っていると私は私のような何かをしたいと思い、私はプロパティエンティティ

内の値でフィルタフィルタを持つようにしたいと言います

$em->getRepository('AcmeBundle\MasterEntity')->findBy(array("PropertyEntity:value" => "red","PropertyEntity:value" => "yello")) 

それはID = 1(りんご)とマスターエンティティのオブジェクトのコレクションを返します - 両方のパラメータは、Apple

答えて

0

にマッチしますので、あなたが代わりに使用のクエリビルダを作成することができますfindBy

$qb->select('m') 
    ->from('AcmeBundle\MasterEntity', 'm') 
    ->join('m.PropertyEntity', 'p') 
    ->where('p.value IN (:values)') 
    ->setParameter('values',['red','yellow']); 
関連する問題