【发布时间】:2013-02-08 17:01:42
【问题描述】:
我有 2 个实体,Picture 和 Tag,具有 ManyToMany 关系。这意味着 3 个表:picture、tag 和 pictures_tags。
我想选择一些图片并将它们的标签加入到同一个查询中。在 DQL 中如何实现?
【问题讨论】:
标签: doctrine-orm many-to-many associations
我有 2 个实体,Picture 和 Tag,具有 ManyToMany 关系。这意味着 3 个表:picture、tag 和 pictures_tags。
我想选择一些图片并将它们的标签加入到同一个查询中。在 DQL 中如何实现?
【问题讨论】:
标签: doctrine-orm many-to-many associations
查询相当简单,都是关于fetch-joins:
$picture = $em->createQuery(
"SELECT p, t FROM Entity\Picture p JOIN p.tags t WHERE p.id = :pictureId"
)->getResult();
【讨论】:
$query = $em->createQuery("Select * from pictures p
join pictures_tags pt on p.pictureid=pt.pictureid
join tag on tag.id=pt.tagid");
$users = $query->getResult();
【讨论】:
Class 'pictures_tags' is not defined。这是数据库中存在的 JoinTable,但不是一个实际的类..