【问题标题】:Doctrine querybuilder教义查询构建器
【发布时间】:2015-05-07 11:14:12
【问题描述】:

我构建了一个 symfony 项目,但我遇到了关于学说查询构建器的问题。 我有两个实体,一个名为 projet,另一个名为 statutprojet 和关系 ManyToOne。

我想通过 statutprojet 计算项目和使用组。

我试试这个,我用 var_dump 得到这样的结果:

array (size=2)
0 => 
array (size=1)
  1 => string '1' (length=1)
1 => 
array (size=1)
  1 => string '2' (length=1)

我想用 statutprojet libelle 或 id 显示结果

这是我的代码:

 $repo = $this   ->getDoctrine()
        ->getManager()
        ->getRepository('BackOfficeBundle:Projet');

    $qb = $repo->createQueryBuilder('p');
    $qb->select('COUNT(p)');
    $qb->groupBy('p.statutprojet');


    $projets = $qb->getQuery()->getArrayResult();

【问题讨论】:

    标签: symfony doctrine-orm query-builder


    【解决方案1】:

    也许您的查询是这样的。

      $repo = $this ->getDoctrine()
                    ->getManager()
                    ->getRepository('BackOfficeBundle:Projet');
    
            $arrayCount = $repo->createQueryBuilder('p');
                  ->join('p.statutprojet', 'sp')
                  ->select('COUNT(p), sp.id')//or sp.name
                  ->groupBy('p.statutprojet')
                  ->getQuery()
                  ->getArrayResult();
    

    【讨论】:

    • 生成相同的结果
    • @Grub_elm,你试过了吗?
    【解决方案2】:

    你可以试试这个:

        $repo = $this ->getDoctrine()
                ->getManager()
                ->getRepository('BackOfficeBundle:Projet');
    
        $qb= $repo->createQueryBuilder('p');
    
        $projects = $qb->join('p.statutprojet', 'sp')
              ->select('COUNT(p), sp.name')
              ->groupBy('sp.id')
              ->getQuery()
              ->getArrayResult();
    

    如果 var_dump 仍然是错误的结果,我想看看这个查询的结果和你的 2 个表,我可以提供更多帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-25
      • 1970-01-01
      • 2021-01-22
      • 2015-09-10
      • 2016-01-30
      • 2015-05-30
      • 2012-01-06
      • 2020-07-22
      相关资源
      最近更新 更多