0

我有一个按(经典)article链接到一个表的基本表,我想提出一个原则请求,按类别仅检索 5 篇文章(对于所有类别)categoryid

此请求将所有类别的文章归还给我,我只想要 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();                
}

你能帮我吗?谢谢你

4

1 回答 1

2

不幸的是,这不是一件容易的事。至少我还没有找到令人满意的解决方案(对我来说很满足;))。

你可以做三件事:

  1. 遍历类别并为每个类别检索 5 个帖子。这当然会导致许多数据库请求与您拥有的类别一样多。

  2. 返回所有包含已加入帖子的类别并在 php.ini 中进行迭代。缺点 - 你会返回所有的帖子,所以如果你有很多,这可能意味着使用了大量的内存。

  3. 如果您不必坚持 Doctrine,您可以从这里尝试解决方案:mySQL Returning the top 5 of each category

于 2013-02-01T12:09:01.530 回答