Doctrine не позволяет мне выбирать определенные поля

В фреймворке symfony есть файл приложения / консоли, который может быть запущен через php для выполнения некоторых задач обслуживания. Он также позволяет пользователям выполнять запросы DQL:

# php app/console doctrine:query:dql --hydrate=array \
    'SELECT u.id, u.nameFirst, u.nameLast  FROM DatabaseBundle:User u'  
array
  0 => 
    array
      'id' => string '1' (length=1)
      'nameFirst' => string 'jaroslav' (length=8)
      'nameLast' => string 'rakhmatoullin' (length=13)
  1 => 
    array
      'id' => string '2' (length=1)
      'nameFirst' => string 'Båb Kåre' (length=10)
      'nameLast' => string 'Ytrefoss' (length=8)

Обратите внимание, что я выбрал три конкретных столбца. Проблема, с которой я столкнулся, заключается в том, что аналогичный запрос дает мне ошибку при объединении двух таблиц.

# php app/console doctrine:query:dql  --hydrate=array \
    'SELECT u.id , r FROM DatabaseBundle:User u JOIN u.roles r'

  [Doctrine\ORM\Query\QueryException]                   
  [Semantical Error] line 0, col -1 near 'SELECT u.id ,': 
     Error: Cannot select entity through identification variables 
     without choosing at least one root entity alias.  

Следующее возвращает всего пользователя со своими ролями:

# php app/console doctrine:query:dql  --hydrate=array \
     'SELECT u, r FROM DatabaseBundle:User u JOIN u.roles r'

Очевидно, я что-то упускаю.

Есть идеи? Я также был бы признателен за ссылки на соответствующие документы (по этому конкретному вопросу).

10
задан j0k 4 December 2012 в 08:12
поделиться