Доктрина ODM/SF4. 1: Должен возвращать результаты вместо курсора

Я пытаюсь использовать построитель запросов доктрины 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. Я также пытался использовать массив безрезультатно.

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

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


person Cyril Z.    schedule 19.10.2018    source источник


Ответы (1)


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

$bars = new ArrayCollection($this->dm->getRepository(Bar::class)->myFunction($foo)->getQuery()->execute()->toArray());
person malarzm    schedule 21.10.2018
comment
Привет, спасибо за ваш ответ. На самом деле это было просто, я забыл добавить -›find() к моему запросу.. Добрый день :) - person Cyril Z.; 22.10.2018