条令多对多查询以获取其他方面的数据


Doctrine Many to Many Query to get other side data

我在institute和"课程"之间有很多对很多的关系。

class Institutes {
    /**
     * @ORM'ManyToMany(targetEntity="PNC'CoursesBundle'Entity'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="PNC'InstitutesBundle'Entity'Institutes", mappedBy="courses")
     */
    protected $institutes;
}

我制作了一张表格,在onece为一所学院分配多门课程,效果很好。现在我想通过条令查询获得分配给学院的课程列表,我有下面的查询,但id不起作用。

$em = $this->getDoctrine()->getManager();
        $repository = $em->getRepository('PNCInstitutesBundle:Institutes');
        $query = $repository->createQueryBuilder('i')
            ->innerJoin('i.courses', 'g')
            ->where('i.id = :inst_id')
            ->setParameter('inst_id',3)
            ->getQuery()->getResult();
 $repository = $em->getRepository('PNCCoursesBundle:Courses');
                $courses = $repository->createQueryBuilder('i')
                    ->innerJoin('i.institutes', 'g')
                    ->where('g.id = :inst_id')
                    ->setParameter('inst_id',$instituteID)
                    ->getQuery()->getResult();