次のテーブル (記事、カテゴリ、関係) 構造があります。
articles
>id
>title
>body
cats
>id
>title
cat_article_relations
>id
>cat_id
>article_id
ここで、ユーザーが 1 つ以上のカテゴリを (チェックボックスを使用して) 選択できるページを作成しました。検索フォームを送信すると、すべてのカテゴリ ID が選択された配列が作成されます。ここで、選択したすべてのカテゴリを持つすべての記事を読み込もうとすると、問題が発生します。
使用時:
...
->leftJoin('a.Cat_article_relations rl')
->andWhere('rl.cat_id = ?', $sg[0])
...
含まれているカテゴリを1つだけ探すので、機能します。複数の「->andWhere」を追加するとすぐに、すべてのカテゴリ ID (取得した配列内) をループして、機能しなくなります。Doctrine 1.2 のドキュメントで解決策を確認しましたが、何も見つかりませんでした。"->whereIn" などでは、必要な結果が得られません。
選択したすべてのカテゴリと関係があるすべての記事のみを取得したい。多分誰かが私にヒントを与えることができます:)
情報: 純粋な MySQL クエリの解決策があれば、私にとっても大きな助けになります。Doctrine で書く必要はありません。
ありがとう