我有以下存储库:
$qb = $this->getEntityManager()->createQueryBuilder();
$qb
->select('r')
->from('MyBundle:Rating', 'r')
->groupBy('r.year');
$result = $qb->getQuery()->execute();
return $result;
在控制器中执行转储:
array(2) {
[0]=>
object(My\Entity\Rating)#553 (5) {
["id":protected]=>
int(2)
["index":protected]=>
int(1)
["year":protected]=>
int(2010)
["percentage":protected]=>
float(2.5)
}
[1]=>
object(My\Entity\Rating)#550 (5) {
["id":protected]=>
int(1)
["index":protected]=>
int(1)
["year":protected]=>
int(2016)
["percentage":protected]=>
float(0)
}
}
我如何满足1的期望?
答案 0 :(得分:0)
Doctrine默认提供对象。如果您想获得包含结果数据的数组,可以使用
$result = $qb->getQuery()->execute(null, Query::HYDRATE_ARRAY);
您需要包含Doctrine \ ORM \ Query,或者只使用
$result = $qb->getQuery()->getArrayResult();
您只获得有关这两年的数据的原因是
->groupBy('r.year');
消除了重复的条目。如果没有它,你将得到它们。