我有一个基本表article
通过category
(经典)链接到表id
,我想提出一个学说请求,只按类别检索5篇文章(对所有人而言)类别)
此请求返回所有类别的文章,我只想要每个5个
public function getArticlesAndCategs(){
$qb = $this->createQueryBuilder('c')
->orderBy('c.id','DESC')
->leftJoin('c.articles', 'a')
->addSelect('a')
->addOrderBy('a.id','DESC')
->getQuery();
return $qb->execute();
}
你可以帮帮我吗?
谢谢
答案 0 :(得分:2)
不幸的是,这不是一件容易的事。至少我还没有找到令人满意的解决方案(为我辩护;))。
你可以做三件事:
遍历各个类别,并为每个类别检索5个帖子。这当然导致许多数据库请求尽可能多的类别。
返回所有已加入帖子的类别并在php中迭代。缺点 - 你将返回所有的帖子,所以如果你有很多,这可能意味着使用了大量的内存。
如果您不必坚持Doctrine,可以从这里尝试解决方案:mySQL Returning the top 5 of each category