Php Symfony2,querybuilder&x27;s主义请求

Php Symfony2,querybuilder&x27;s主义请求,php,sql,symfony,doctrine,query-builder,Php,Sql,Symfony,Doctrine,Query Builder,我有一个基本表文章,通过id(经典)链接到表类别,我想提出一个条令请求,按类别仅检索5篇文章(适用于所有类别) 此请求返回我所有类别的文章,我只想每个5 public function getArticlesAndCategs(){ $qb = $this->createQueryBuilder('c') ->orderBy('c.id','DESC') ->leftJoin('c.articles', 'a')

我有一个基本表
文章
,通过
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();                
}
你能帮我吗?
谢谢

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

你可以做三件事:

  • 遍历类别并检索每个类别的5篇文章。这当然会导致许多db请求尽可能多的类别

  • 返回所有带有连接帖子的类别,并在php中迭代。缺点-你会返回所有的帖子,所以如果你有很多,这可能意味着使用了大量的内存

  • 如果您不必坚持原则,您可以从这里尝试解决方案:


  • 不,谢谢!我知道如何使用简单的sql,但我想要一个条令querybuilder请求。==>我想要一个条令querybuilder请求这就是为什么ORM得到一个坏名字的原因。您正在尝试使用为CRUD和基于ID的联接和查找设计的东西来执行复杂的数据库查询。停下来想想你所做的事情的价值,以及为什么你“想要”一个条令请求,而不是用SQL写结果,而只是使用createQuery调用。