【问题标题】:Symfony2/Doctrine DQL QueryExceptionSymfony2/Doctrine DQL QueryException
【发布时间】:2011-11-03 17:24:55
【问题描述】:

所以我试图对包含两个外键的表进行查询。该表基本上将特定的用户 ID 设置为我们应用程序中特定 zoneID 的“管理员”我的 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”中呈现模板时抛出了异常(“[Syntax Error] line 0, col 80: Error: Expected end of string, got ‘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'

感谢您提供的任何帮助,这让我感到很困惑

【问题讨论】:

    标签: doctrine symfony dql


    【解决方案1】:

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

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

    从这里 zoneAdminsZID 是一个适当的区域实体,现在我相信这是在延迟加载这个实体,也就是在我“取消引用”ZID 之前不会触发查询,但对我们来说这很好用

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-25
      • 2012-08-17
      • 1970-01-01
      • 1970-01-01
      • 2010-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多