Doctrine 1.2 - 在用户搜索输入后构建查询

时间:2012-07-04 12:50:35

标签: php mysql doctrine doctrine-1.2

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

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编写。

由于

1 个答案:

答案 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])