Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 条令2查询中对象的多次计数_Php_Doctrine Orm_Count_Query Builder - Fatal编程技术网

Php 条令2查询中对象的多次计数

Php 条令2查询中对象的多次计数,php,doctrine-orm,count,query-builder,Php,Doctrine Orm,Count,Query Builder,我试图在条令2查询中对一个实体进行多次计数 当我在同一个查询中进行单个计数时,我能够正确地获得计数,但当我进行多个计数时,我会遇到问题 另外,我的查询返回实体;但我不想要实体。我只想数一数 这是我的疑问 public function getMessagesCount() { $qb = $this->queryBuilder(); $qb->select(array('u','count(fa)as favouritesAdded','count(se)as s

我试图在条令2查询中对一个实体进行多次计数

当我在同一个查询中进行单个计数时,我能够正确地获得计数,但当我进行多个计数时,我会遇到问题

另外,我的查询返回实体;但我不想要实体。我只想数一数

这是我的疑问

public function getMessagesCount()
{ 
    $qb = $this->queryBuilder();

    $qb->select(array('u','count(fa)as favouritesAdded','count(se)as sentMessages' ))
        ->from('BaseModel\Entity\User','u')
        ->leftJoin('u.theFavouriteAdded', 'fa')
        ->leftJoin('u.sentMessagesObject', 'se')     
        ->where('u.id = :identifier')
        ->setParameter('identifier',(int)$this->getUserId());

    $query = $qb->getQuery();

    return   $data = $query->getArrayResult();        
}    
此查询为两个计数返回相同的数字(即,两个都错误地返回了每个20的计数)

然而,当我只做了一个单一的计数每;他们每次都返回正确的帐户。i、 e

public function getMessagesCounts()
{ 
    $qb = $this->queryBuilder();

    $qb->select(array('u','count(fa)as favouritesAdded' ))
        ->from('BaseModel\Entity\User','u')
        ->leftJoin('u.theFavouriteAdded', 'fa')
     //   ->leftJoin('u.sentMessagesObject', 'se')     
        ->where('u.id = :identifier')         
        ->setParameter('identifier',(int)$this->getUserId());

    $query = $qb->getQuery();

    return   $data = $query->getArrayResult();             
}    
我尝试向查询中添加一个GROUPBY;但它仍然返回了错误的数字

->groupBy(“u.FavoriteSadded”、“u.sentMessages”)

对查询进行多次计数的正确方法是什么?

对于单次计数: (返回计数,不返回实体)

对于二合一计数:
@PaulKendal你试过我的解决方案吗?它能满足你的需要吗?
public function getMessagesCounts()
{ 
    $qb = $this->queryBuilder();
    $qb->select('count(se)')
        ->from('BaseModel\Entity\User','u')
        ->leftJoin('u.sentMessagesObject', 'se')     
        ->where('u.id = :identifier')         
        ->setParameter('identifier', (int) $this->getUserId());

    return  $qb->$query->getResult(); 
}    
public function getMessagesCounts()
{ 
    $qb = $this->queryBuilder();
    $qb->select('count(fa), count(se)')
        ->from('BaseModel\Entity\User','u')
        ->leftJoin('u.theFavouriteAdded', 'fa')
        ->leftJoin('u.sentMessagesObject', 'se')     
        ->where('u.id = :identifier')         
        ->setParameter('identifier', (int) $this->getUserId());

    return  $qb->$query->getResult(); 
}