Symfony2 / Doctrine DQL QueryException

时间:2011-11-03 17:24:56

标签: doctrine symfony dql

所以我试图在一个包含两个外键的表上进行查询。这个表基本上将特定的userID设置为我们的应用程序中特定zoneID的“admin”我的DQL是这样的:

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

我收到此错误:

  

在“MLBPBeerBundle:Profile:index.html.twig”中呈现模板期间抛出异常(“[语法错误]第0行,第80行:错误:字符串的预期结束,得到'z'”) “在第10行。

从查询中查询有问题的部分“第0行,第80行是z.zoneAdminsPID的开头,这意味着至少在我对错误的解释中,它希望字符串在WHERE之后结束,这是没有意义的

让我更加困惑的是,我已成功使用类似的查询从我们的游戏表中获取团队名称,该游戏表具有团队ID的外键:

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

感谢您提供的任何帮助,这让我感到困惑。除了他们抓取不同数据的事实之外,我并没有真正看到两个查询如何运作的区别

1 个答案:

答案 0 :(得分:0)

我能够通过不包括JOIN解决这个问题,Symfony比我想象的更自动化

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

从这里开始,zoneAdminsZID是一个合适的区域实体,现在我相信这是懒惰加载这个实体而不是解雇查询,直到我“解除”ZID,但对我们来说这很好用