我正在开发一个有三个实体的webapp:User,Project和Todo.
每个Todo都与Projects有着多对一的关系.Todos还与用户建立了多对多的关系.
我想要做的是检索包含已分配给给定用户的待办事项的项目.
我的代码如下.$ id已设置为我想要检索项目的user_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();
Run Code Online (Sandbox Code Playgroud)
每当我运行此查询时,我会收到以下错误:
[语义错误]第0行,第79行'assigned_to ='附近:错误:无效的PathExpression.期望StateFieldPathExpression或SingleValuedAssociationField.
对我做错了什么的想法?谢谢.
更新:
由于assigned_to关系是注释中指出的多对多关系,因此没有实际的字段assign_to用于比较.
你必须加入协会:
SELECT p
FROM projects p
INNER JOIN p.todos t
INNER JOIN t.assigned_to a
WHERE a.id = :id
Run Code Online (Sandbox Code Playgroud)
我正在使用WHERE条件,因为我从你那里学到的东西也得到了支持,也可能有用;)
| 归档时间: |
|
| 查看次数: |
9133 次 |
| 最近记录: |