Symfony2主义复杂查询

时间:2014-10-13 10:51:10

标签: php symfony doctrine-orm

我有两个人UserFile

我有一个User OneToMany File关系。用户关系字段为fileCommercial,文件为commercial

在实体File中,我有一个字段state

我需要在一个查询中计算所有具有state = AAA,state = BBB等的文件...对于特定用户(商业)。

现在我有:

             $qb->select('a')
            ->from('ProjectCrmBundle:FiLe', 'a')
            ->leftjoin('a.commercial', 'c')
            ->where('c.type = :type')
            ->setParameter('type', 'Commercial');

通过此查询,我可以获取用户type=commercial的所有文件。我怎样才能得到像我上面所说的所有计数器?

例如,如果我的用户有4个状态为AAA的文件,3个状态为BBB,我需要在我的结果中获得这些数字...感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

尝试这样的事情。它将返回一个包含状态字段和一个计数字段的数组。您可能需要检查/ var_dump它以获得确切的布局。

$qb->select('a.state, COUNT(c) as count')
->from('ProjectCrmBundle:FiLe', 'a')
            ->leftjoin('a.commercial', 'c')
            ->where('c.type = :type')
            ->groupBy('a.state')
            ->setParameter('type', 'Commercial');