0

我有下表(文章、类别、关系)结构:

articles
 >id
 >title
 >body

cats
 >id
 >title

cat_article_relations
 >id
 >cat_id
 >article_id

现在我创建了一个页面,用户可以在其中选择一个或多个类别(使用复选框)。提交搜索表单后,我有一个选择了所有类别 ID 的数组。现在,当我尝试加载具有所有选定类别的所有文章时,就会出现我的问题。

使用时:

...    
->leftJoin('a.Cat_article_relations rl')
->andWhere('rl.cat_id = ?', $sg[0])
...

它之所以有效,是因为我只寻找一个包含的类别。一旦我添加多个“->andWhere”并循环遍历我的所有类别ID(在我得到的数组中),它就不再起作用了。我检查了 Doctrine 1.2 文档以获取任何解决方案,但找不到任何东西。“-> whereIn”和类似的没有给出我想要的结果。

我只想获取与所有选定类别相关的所有文章。也许有人可以给我一个提示:)

信息: 如果你有一个纯 MySQL 查询的解决方案,那对我也有很大的帮助。它不必用 Doctrine 编写。

谢谢

4

1 回答 1

0

我不确定我是否理解这种关系,但这应该从:

->leftJoin('a.Cat_article_relations rl')
->andWhere('rl.cat_id = ?', $sg[0])

->leftJoin('a.Cat_article_relations rl WITH rl.cat_id=?', $sg[0])
于 2012-07-05T18:04:08.803 回答