2016-04-24 11 views
1

私は私のリポジトリsymfonyの教義QueryBuilder OneToManyは</p> <p>フィルタリング

// ProductBundle/Repository/ProductRepository.php 

$qb->where($qb->expr()->eq('afp.id', 15)); 
$qb->andWhere($qb->expr()->eq('afp.id', 14)); 

return $qb 
      ->select('a', 'afp') 
      ->leftJoin('a.productFields', 'afp') 
      ->getQuery() 
      ->getResult(); 

内のコードを次のようしている。しかし、私はオールウェイズヌルリターンを得るが、私は、製品のウィッヒは両方productFieldsを持って取得したい(そうorWhereは良くありません)どのようなアイディアからでも私を助けてください。

答えて

1

idの代わりにMEMBER OFを使用します。それ以外の場合は、2つの異なるid値を持つレコードを探していますが、これはもちろん不可能です。

これは、あなたがやりたいことになります。

$qb->where($qb->expr()->isMemberOf(15, 'a.productFields')); 
$qb->andWhere($qb->expr()->isMemberOf(14, 'a.productFields')); 
+0

それは最初の試行で作業をdoesnt: 'クラスの「isMemberOf」という名前の未定義のメソッドを呼び出そうとしました「教義\ ORM \クエリー\ Exprに」.'私が持っています$ qb->で試したところ、( "?1メンバーのa.productFields"); $ qb-> andWhere( "?2メンバーa.productFields"); $ qb-> setParameters(['1' => 14、 '2' => 15]); '、しかし、Im stuck –

+0

これはかなりうまくいきます。私にアイデアを与えてくれてありがとう!今度は次の質問です: 'id '以外のフィールドに' MEMBER OF'を使うことは可能ですか? –

+0

IDの代わりにエンティティ全体を渡すことはできますが、それは多かれ少なかれ同じことです。それがあなたのためにできない場合は、別の質問を追加し、あなたのケースをより詳しく説明することを検討してください。 –

関連する問題