0
我看了Symfony
和Doctrine
的文档,但是我仍然无法解决这个问题。主义多对多选择
我正在与Symfony2
一起工作。实体正确设置。
我有两个数据表: 学生, 组
我有映射表太: students_group
比方说,我有五组: G1,G2,G3,G4,G5
我想选择G1,G2的所有学生,G3
我怎样才能做到这一点?
目前我有这组代码
public function filtered($array) {
/* GET DOCTRINE */
$repository = $this->getDoctrine()->getRepository('AppBundle:StudyGroups');
$query = $repository->createQueryBuilder('a')
->andWhere('a.id IN (:ids)')
->setParameter('ids', $array)
->getQuery();
$groups = $query->getResult();
$students = $groups->getStudents();
return $students;
}
这不起作用,因为没有方法getStudents()。 但是,如果我做这样的事情
public function filtered($array) {
/* GET DOCTRINE */
$repository = $this->getDoctrine()->getRepository('AppBundle:StudyGroups');
$query = $repository->createQueryBuilder('a')
->andWhere('a.id IN (:ids)')
->setParameter('ids', $array)
->getQuery();
$groups = $query->getResult();
$students = array();
foreach ($groups as $group) {
$students = $group->getStudents();
}
return $students;
}
它的工作原理,但有一个问题:我刚刚从过去的foreach循环让学生。 我正在考虑创建一个数组,但这些都是对象,并且合并工作也不尽如人意。老实说,我认为有一个比这更简单的方法,我只是找不到它。任何想法?