我有下表(文章,类别,关系)结构:
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编写。
由于
答案 0 :(得分: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])