0

DQLクエリ(symfony 2.2のdoctrine)を作成しようとしていますが、これらのエンティティで成功しませんでした:

それぞれがユーザーにリンクされているいくつかの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エンティティを返します。レッスンから選択した場合、レッスンに参加できません(おそらくこれが私がすべきことです)。

誰か助けてもらえますか?

4

2 に答える 2

1

クエリを実行するメインテーブルは、Doctrineがメインオブジェクトとして返すものであるため、次のように機能するはずです(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
于 2013-02-15T13:04:01.457 に答える
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

そしてそれでそれは魅力のように機能します!

于 2013-02-15T20:16:25.920 に答える