微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

多对多关系的查询构建器抛出 QueryException,为什么?

如何解决多对多关系的查询构建器抛出 QueryException,为什么?

我正在尝试选择存在 m-2-m 关系属性的所有实体。

$qb = $this->entityManager
    ->createqueryBuilder()
    ->select('attachment')
    ->from(Attachment::class,'attachment')
    ->join('attachment.orders','order');

 print $qb->getQuery()->getsql();
 // SELECT d0_.Meta AS Meta_0,d0_.type AS type_1,d0_.attachment_id AS attachment_id_2,d0_.dossier_id AS dossier_id_3 FROM dossier_attachment d0_ INNER JOIN dossier_order_attachment d2_ ON d0_.attachment_id = d2_.attachment_id INNER JOIN dossier_order d1_ ON d1_.order_id = d2_.order_id

这似乎纠正了我的多 2 多表的 sql

但是,一旦我添加一个 where 子句来限制返回的附件,我就会得到一个 QueryException。由于我已经玩了两个多小时,我在问为什么会出现异常以及我将如何解决它?

{
     "line" : 457,"class" : "Doctrine\\ORM\\Query\\QueryException","file" : "/home-projects/api-plhw-development/deploy/releases/20210222110730UTC/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Parser.PHP","function" : "dqlError","type" : "::","args" : [
        "SELECT attachment FROM HF\\Model\\Entity\\Dossier\\Attachment attachment INNER JOIN attachment.orders order WHERE order.orderId = :orderId"
     ]
  },{
     "line" : 2679,"class" : "Doctrine\\ORM\\Query\\Parser","function" : "SyntaxError","type" : "->","args" : [
        "Literal"
     ]
  },{
     "type" : "->","args" : [],"function" : "Literal","line" : 2863
  },{
     "args" : [],"function" : "ArithmeticPrimary","line" : 2801
  },

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。