4
我正在研究一个有三个实体的Web应用程序:User,Project和Todo。带关联的DQL查询?
每个Todo都与项目有多对一的关系。 Todos也与用户有多对多的关系。
我想要做的是检索包含已分配给给定用户的待办事项的项目。
我的代码如下。 $ ID已被设置为我想要检索项目
$em = $this->getDoctrine()->getEntityManager();
$projects = $em->createQuery("SELECT p FROM projects p INNER JOIN p.todos t WITH t.assigned_to = :id")
->setParameter('id', $id)
->getResult();
每当我运行此查询我得到以下错误的USER_ID:
[Semantical Error] line 0, col 79 near 'assigned_to =': Error: Invalid PathExpression. StateFieldPathExpression or SingleValuedAssociationField expected.
任何思考什么我做错了吗?谢谢。
我很确定WITH子句被支持。它可以在[此处]列出的一个学说示例中找到(http://www.doctrine-project.org/docs/orm/2.1/en/reference/dql-doctrine-query-language.html)。当我用一个不使用外键的条件(比如'WITH t.description ='Say hi'“')替换'WITH t.assigned_to =:id”'时,查询就可以正常工作。 –
另外,我也尝试使用WHERE子句并遇到同样的问题。 –
@JamesKirkwood hm ...什么是您的assigned_to的映射?这是多个值或单个值的集合吗? – Max