Symfony2,querybuilder的Doctrine请求

时间:2013-02-01 11:57:56

标签: php sql symfony doctrine query-builder

我有一个基本表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();                
}
你可以帮帮我吗? 谢谢

1 个答案:

答案 0 :(得分:2)

不幸的是,这不是一件容易的事。至少我还没有找到令人满意的解决方案(为我辩护;))。

你可以做三件事:

  1. 遍历各个类别,并为每个类别检索5个帖子。这当然导致许多数据库请求尽可能多的类别。

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

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