Доктрина ODM / SF4.1: должен возвращать результаты вместо курсора - PullRequest
0 голосов
/ 19 октября 2018

Я пытаюсь использовать построитель запросов доктрины 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);

К сожалению, это возвращает мне класс EagerCursor вместо моей коллекции Array.Я также попытался toArray безрезультатно.

Я провел несколько поисков здесь, в Google и доктрине Doc, напрасно.

Есть ли у вас какие-либо советы по возвращению моей коллекции ArrayCollection как доктрины или, пожалуйста?

1 Ответ

0 голосов
/ 21 октября 2018

Я не уверен, зачем вам нужен ArrayCollection, чтобы просто вставить его в JSONResponse, но вам нужно создать его вручную:

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