我不知道为什么,但经过一些(不相关的)更改后,我的所有返回都是对象而不是数组。例如:
ReceiptController.php
/**
* Get all receipts for the team.
*
* @param String $id
* @return array
*
* @SWG\Response(
* response=201,
* description="Get all receipt for the team.",
* @SWG\Schema(
* type="array"
* )
* )
*/
public function getTeamReceiptsAction($id): array
{
$parameterBag = [
'teamId' => $id
];
$items = $this->manager->getAll($parameterBag);
return $items;
}
Receiptrepository
/**
* @inheritdoc
*/
public function getFilterQuery($parameterBag): QueryBuilder
{
$qb = $this
->createQueryBuilder('s')
;
if (isset($parameterBag['id'])) {
$qb->andWhere('s.id=(:id)')
->setParameter('id', $parameterBag['id']);
}
if (isset($parameterBag['teamId'])) {
$qb->andWhere('s.team=(:team)')
->setParameter('team', $parameterBag['teamId']);
}
return $qb;
}
/**
* @inheritdoc
*/
public function getAll($parameterBag): ?array
{
$qb = $this->getFilterQuery($parameterBag);
return $qb->getQuery()->getResult();
}
返回:
{"0":{"email":"admin@benj.be","first_name"...
虽然我期待[{"email":"admin@benj.be","first_name"...
?
因此它返回一个包含多个对象而不是数组的对象。
但这很奇怪,因为我输入的所有函数都是为了返回数组,而且我没有收到任何错误?
答案 0 :(得分:2)
尝试改变这个:
return $qb->getQuery()->getResult();
到此:
return $qb->getQuery()->getResult(Query::HYDRATE_ARRAY);
在此模式下,您可以检索数组中的结果
或者像Tomasz Madeysk写的那样试试这个:
return $qb->getQuery()->getArrayResult()