我有一个与帖子有多对多关系的类别系统。如何选择与一个或多个帖子相关的类别列表?
$q = Doctrine_Query::create()
->from('Category c')
->where('<DONT KNOW WHAT TO WRITE>')
->select('c.name');
答案 0 :(得分:3)
在DQL中创建相当于此的内容:
SELECT c.*
FROM category c
INNER JOIN category_post_rel cpr ON c.id = cpr.category_id;
DQL等价物:
Doctrine_Query::create()
->select('c.name')
->from('Category c')
->innerJoin('c.Posts');
不幸的是,这也将加入Post
表。您应该考虑在post_count
模型中使用其他字段Category
。它的值应该等于类别的关系计数。对于这个以及许多其他问题,这是非常常见的解决方案(因为它非常快)。
答案 1 :(得分:-1)
->where('post_id = \'CURRENT_POST\'')
我不知道Doctrine Query的语法,所以这只是猜测。将CURRENT_POST替换为您要检查的帖子。