Doctrine 2 DQL - как выбрать обратную сторону однонаправленного многоточечного -many query?

У меня есть два класса - Page и SiteVersion, которые имеют отношение "многие ко многим". Только SiteVersion знает связи (поскольку сайт является модульным, и я хочу иметь возможность убирать и опускать модуль, которому принадлежит SiteVersion).

Как мне выбрать страницы на основе критериев SiteVersion?

Например, это не работает:

SELECT p FROM SiteVersion v JOIN v.pages p WHERE v.id = 5 AND p.slug='index'

Я получаю сообщение об ошибке:

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

Хотя я могу выбрать «v» в этом запросе.

Думаю, я мог бы решить эту проблему, введя класс для отношения (класс PageToVersion), но есть ли способ не делать этого или сделать его двунаправленным?

20
задан Gnuffo1 25 March 2011 в 12:28
поделиться