Symfony форма query_buider и хранилище сущностей

Я пытаюсь создать форму с данными в типе коллекции в зависимости от пользователя, который регистрируется. Я'я подписанэта глава поваренной книги Symfony.

Все отлично работает когдаquery_builder Опция закрытие, где я получаю свои данные из DQL. Поскольку данные должны быть извлечены из другого места в коде, я бы предпочел определить запрос в классе Repository.

Вот функция в моем хранилище:

public function findOwnedBy($user) {
    $query = $this->getEntityManager()->createQuery("SELECT l FROM MyBundle:Article a JOIN a.owndBy u WHERE u.id = :userId");
    $query->setParameters(array("userId"=>$user->getId()));
    return $query->getResult();
}

Эта функция работает при вызове в контроллере и возвращает массив Article. Вот фрагмент документа Symfony:

$formOptions = array(
                    'class' => 'Acme\DemoBundle\Entity\User',
                    'multiple' => false,
                    'expanded' => false,
                    'property' => 'fullName',
                    'query_builder' => function(EntityRepository $er) use ($user) {
                        // build a custom query, or call a method on your repository (even better!)
                    },
                );

Когда я помещаю вызов своей функции репозитория в query_builder, я получаю сообщение об ошибке:Expected argument of type "Doctrine\ORM\QueryBuilder", "array" given, что я могу понять, потому что мой репозиторий возвращает массив Entity, а не QueryBuilder.

Я нене хочу дублировать код и создать новый QueryBuilder в форме. Как лучше всего использовать запрос из репозитория? Я думал о наличии двух функций в хранилище: одна возвращает массив, другая возвращает QueryBuilder, но комментарий в Symfony doc "или вызовите метод в вашем хранилище (даже лучше!) дай мне подуматьлучший способ для этого случая.

Ответы на вопрос(2)

Ваш ответ на вопрос