主义ODM/SF4。 1: 必须 return 结果而不是游标
Doctrine ODM/SF4. 1: Must return results instead of cursor
我正在尝试将 doctrine odm 的查询生成器与 Symfony 4.1 一起使用。
我已经创建了一个存储库:
public function myFunction(Foo $foo)
{
$query Builder = $this->createQueryBuilder();
$queryBuilder
->eagerCursor(true)
->field('foo')->references($foo)
->field('date')
->lte('2018-10-19 23:59:59')
->gte('2018-10-19 00:00:00');
return $queryBuilder;
}
在我的控制器中:
$bars = $this->dm->getRepository(Bar::class)->myFunction($foo)->getQuery()->execute();
return new JsonResponse($bars);
不幸的是,这个 returns 我是 EagerCursor class 而不是我的数组集合。
我也试过 toArray 没有结果..
我在这里、Google 和 doctrine Doc 上进行了一些搜索,但没有结果。
你有什么技巧可以让我的 ArrayCollection 像教义一样返回吗?
我不确定为什么你需要一个 ArrayCollection
只是为了将它塞进 JSONResponse
但你需要手动创建它:
$bars = new ArrayCollection($this->dm->getRepository(Bar::class)->myFunction($foo)->getQuery()->execute()->toArray());
我正在尝试将 doctrine odm 的查询生成器与 Symfony 4.1 一起使用。 我已经创建了一个存储库:
public function myFunction(Foo $foo)
{
$query Builder = $this->createQueryBuilder();
$queryBuilder
->eagerCursor(true)
->field('foo')->references($foo)
->field('date')
->lte('2018-10-19 23:59:59')
->gte('2018-10-19 00:00:00');
return $queryBuilder;
}
在我的控制器中:
$bars = $this->dm->getRepository(Bar::class)->myFunction($foo)->getQuery()->execute();
return new JsonResponse($bars);
不幸的是,这个 returns 我是 EagerCursor class 而不是我的数组集合。 我也试过 toArray 没有结果..
我在这里、Google 和 doctrine Doc 上进行了一些搜索,但没有结果。
你有什么技巧可以让我的 ArrayCollection 像教义一样返回吗?
我不确定为什么你需要一个 ArrayCollection
只是为了将它塞进 JSONResponse
但你需要手动创建它:
$bars = new ArrayCollection($this->dm->getRepository(Bar::class)->myFunction($foo)->getQuery()->execute()->toArray());