【发布时间】:2013-03-08 11:58:52
【问题描述】:
在我的存储库中,我有这个查询:
$qb = $this->getEntityManager()->createQueryBuilder();
$qb
->update('MyBundle:Entity1', 'e1')
->join('e1.Entity2', 'e2')
->set('e1.visibile', '1')
->andWhere('e2.id = :id')->setParameter("id", 123)
;
抛出这个错误
[Semantical Error] line 0, col 66 near 'e2.id = :id': Error: 'e2' is not defined
我检查了关系,它是正确的。 在查询更新中使用 join 有什么问题吗?
【问题讨论】:
-
e1是否有Entity2成员加入其班级? -
尝试打印您的 DQL 以查看可能出现的问题。 (
$qb->getQuery()->getDQL()) -
您的错误与您的代码不匹配 - 错误显示
:use- 您的代码在哪里? -
生成的 DQL: UPDATE MyBundle:Entity1 e1 SET e1.visibile = 1 WHERE e2.id = :id
-
@AlessandroPessina 你试试我的答案吗?你有什么错误吗?它应该可以工作,我在我的项目中使用了非常相似的东西
标签: database symfony doctrine-orm dql