教义ODM / SF4。 1:必须返回结果而不是光标

时间:2018-10-19 13:41:48

标签: symfony4 doctrine-odm

我正在尝试在Symfony 4.1中使用主义odm的查询生成器。 我已经创建了一个存储库:

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);

不幸的是,这返回了一个EagerCursor类而不是我的Array Collection。 我也尝试了toArray,但没有结果。.

我在Google和教义文档上徒劳地进行了一些搜索。

您有什么建议让我的ArrayCollection像教义一样返回吗?

1 个答案:

答案 0 :(得分:0)

我不确定为什么只需要将ArrayCollection塞入JSONResponse即可,但是您需要手动创建它:

$bars = new ArrayCollection($this->dm->getRepository(Bar::class)->myFunction($foo)->getQuery()->execute()->toArray());