пользовательский запрос в типе поля сущности

Я создаю форму с таким типом объекта:

$form = $this->createFormBuilder()
->add('users', 'entity', array(
    'class' => 'UserBundle:Users',
        'query_builder' => function(EntityRepository $er) {
            return $er->createQueryBuilder('u')
                          ->orderBy('u.name', 'ASC');
                        },)
      )
->getForm();

Теперь я хочу изменить эту форму, чтобы отображать только отдельных пользователей. Я пробую следующее:

->add('users', 'entity', array(
                        'class' => 'UserBundle:Users',
                        'query_builder' => function(EntityRepository $er) {
                        return $er->createQuery('SELECT DISTINCT u.name FROM UserBundle:Users ORDER BY u.name ASC')->getResult();
                        },)
                      )

но Symfony выдает мне исключение. Мой вопрос в том, как я могу использовать пользовательский запрос в типе поля сущности?


Я не поймите, что вы имели в виду под последним ответом. Мой код выглядит так:

репозиторий:

public function getDistinctUsers()
{
    return $this->getEntityManager()->createQuery('SELECT DISTINCT u.name FROM UserBundle:Users u ORDER BY u.name DESC')->getResult();
}

контроллер:

->add('users', 'entity', array(
    'class' => 'UserBundle:Users',
    'query_builder' => function(EntityRepository $er) {
            return $er->getDistinctUsers();
         },)
      )

веточка:

<form action="{{ path('user') }}" method="post" {{ form_enctype(form) }}>
    {{ form_widget(form) }}
    <input type="submit" />
</form>

и выдает исключение: исключение было сгенерировано во время рендеринга шаблона (" Ожидаемый аргумент типа «Doctrine \ ORM \ QueryBuilder», «массив« задан ») ...

9
задан casperOne 11 January 2013 в 20:16
поделиться