我正在尝试进行DQL查询(来自symfony 2.2的学说)但这些实体没有成功:
课 其中有几个LessonContent 每个都链接到用户
我想要检索用户的所有课程(应该非常基本......)。
SELECT l, lc FROM MyBundle:LessonContent lc
JOIN lc.lesson l JOIN lc.modifiedBy u
WHERE lc.creation=1 AND u.id = :userId
但是这会返回LessonContent实体。如果我从课程中选择,我就无法加入课程(这可能是我应该做的)。
任何人都可以帮助我吗?
答案 0 :(得分:1)
您查询的主表是作为主要对象返回的主题,因此以下内容应该有效(假设l.content指向LessonContent关联):
SELECT l, lc FROM MyBundle:Lesson l
JOIN l.content lc
JOIN lc.modifiedBy u
WHERE lc.creation=1 AND u.id = :userId
答案 1 :(得分:0)
事实证明我需要一个l.content * s *属性才能从课程中选择,然后加入其余部分。
实体:
/**
* @var ArrayCollection $contentHistory
* @ORM\OneToMany(targetEntity="AAA\CoreBundle\Entity\LessonContent", mappedBy="lesson", cascade={"persist", "remove"})
* @ORM\OrderBy({"lastModified" = "DESC"})
*/
private $contentHistory;
查询:
SELECT l FROM AAACoreBundle:Lesson l JOIN l.contentHistory lc JOIN lc.modifiedBy u WHERE lc.creation=1 AND u.id = :userId GROUP BY l
然而它就像一个魅力!