私は、研究所とコースの多対多の関係を持っています。私は、いくつかのコースが割り当てられている機関リストだけを返すクエリを作成したい。私はこの状況でone to many
の質問を書いています。ただし、many to many
ではありません。ここには関係があります。Symfony Doctrine問合せの多少の問合せ
class Institutes {
/**
* @ORM\ManyToMany(targetEntity="Courses", inversedBy="institutes")
* @ORM\JoinTable(name="institute_courses",
* joinColumns={@ORM\JoinColumn(name="institute_id", referencedColumnName="id")},
* inverseJoinColumns={@ORM\JoinColumn(name="course_id", referencedColumnName="id")}
* )
*/
protected $courses;
}
class Courses {
/**
* @ORM\ManyToMany(targetEntity="Institutes", mappedBy="courses")
*/
protected $institutes;
}
ここには私が書いたクエリがありますが、正しく機能しませんでした。
$repository->createQueryBuilder('s')
->leftJoin('CoursesBundle:Courses','c', 'ON c.institutes = s.courses')
->where('s.active = :active')
->andWhere('s.verified = :active')
->setParameter('active', true)
->orderBy('s.name', 'ASC');
左のジョイントを内側のジョイントに置き換えようとします。コースで施設のみをターゲットにしたい場合は – jiboulex