【发布时间】:2017-03-10 17:13:42
【问题描述】:
我有这个问题:
select count(*) as total_count, sum(total) as total_value, status from invoice group by status;
当我在数据库中执行它时,我得到以下信息:
我想用 Doctrine2 达到同样的效果,但下面的代码只返回一行:
$rsm = new ResultSetMapping();
$rsm->addScalarResult('total_count', 'totalCount');
$rsm->addScalarResult('total_value', 'totalValue');
$rsm->addScalarResult('status', 'status');
$query = $this->getObjectManager()->createNativeQuery('
select count(*) as total_count, sum(total) as total_value, status from invoice group by status', $rsm);
$result = $query->getResult();
return $result;
这是上面的结果:
array (size=1)
0 =>
array (size=3)
'totalCount' => string '1432' (length=1)
'totalValue' => string '55447.80999999999' (length=2)
'status' => string 'paid' (length=4)
【问题讨论】:
-
试试
$query->getResult(AbstractQuery::HYDRATE_SINGLE_SCALAR); -
@Matteo 给了我
The query returned a row containing multiple columns. Change the query or use a different result function like getScalarResult(). -
我认为教义为您获取了多行。试试
getSingleResult()。见the docs。
标签: php doctrine-orm