Symfony2 / Doctrine DQL QueryException - PullRequest
       9

Symfony2 / Doctrine DQL QueryException

0 голосов
/ 03 ноября 2011

Итак, я пытаюсь выполнить запрос к таблице, содержащей два внешних ключа.Эта таблица в основном устанавливает определенный ID пользователя как «admin» определенного zoneID в нашем приложении, мой DQL следующий:

'SELECT z, zone FROM MLBPBeerBundle:TableZoneAdmins z JOIN z.zoneAdminsZID WHERE z.zoneAdminsPID = '.$userID .'AND zone.zoneId = z.zoneAdminsZID'

Я получаю эту ошибку:

Anвозникла исключительная ситуация во время рендеринга шаблона («[Синтаксическая ошибка], строка 0, столбец 80: ошибка: ожидаемый конец строки, получено значение« z »») в «MLBPBeerBundle: Profile: index.html.twig» в строке 10.

При просмотре запроса рассматриваемая деталь "строка 0, столбец 80 является началом z.zoneAdminsPID, что означает, по крайней мере, в моей интерпретации ошибки, что она ожидает, что строка заканчивается правильнопосле ГДЕ, который не имеет смысла

Что делает это еще более запутанным, так это то, что я уже успешно использовал аналогичный запрос для получения названия команды из нашей игровой таблицы, которая имеет внешний ключ для идентификатора команды:

'SELECT g, team1 FROM MLBPBeerBundle:TableGame g JOIN g.gameWinnertid WHERE g.gameZoneid = '.$zoneId .'AND team1.id = g.gameWinnertid'

Спасибо за любую помощь, которую вы можете предоставить, это поставило меня в тупик, поскольку я не вижу особой разницы в том, как работают два запроса, кроме того, что они захватывают dданные ifferent

1 Ответ

0 голосов
/ 14 ноября 2011

Я смог это исправить, не включив JOIN, Symfony более автоматичен, чем я думал, из-за того, что

SELECT z FROM MLBPBeerBundle:TableZoneAdmins z WHERE z.zoneAdminsPID = '.$userID

Отсюда zoneAdminsZID был подходящим объектом зоны, теперь я полагаю, что это лениво загружает эту сущность, то есть не запускает запрос, пока я не "разыграю" ZID, но для нас это работает просто отлично

...