我有两个人User
和File
。
我有一个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,我需要在我的结果中获得这些数字...感谢您的帮助!
答案 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');