Php 条令2查询中对象的多次计数
我试图在条令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
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();
}