我想获取用户所在的学校,但由于某种原因,我只能通过对不相关的学校表运行查询来访问它。这是我的代码:
这不起作用(在控制器内):
$schoolsEnrolled = $this->getUser()->getSchools();
结果是一个带有 School 对象的数组,它的所有属性都为 null(由于某种原因,id 除外)。
这确实有效(在控制器内):
//unrelated query
$repository = $this->getDoctrine()->getRepository('AcmeMainBundle:School');
$query = $repository->createQueryBuilder('s')->getQuery();
$schools = $query->getResult();
//the query I care about
$schoolsEnrolled = $this->getUser()->getSchools();
结果是一系列所需的学校。
以下是相关方法:
在学校课堂上:
public function getSchools(){
$schools = array();
foreach ($this->schoolHasUsers as $key=>$schoolHasUser){
$schools[] = $schoolHasUser->getSchool();
}
return $schools;
}
在 SchoolHasUser 类中:
public function getSchool()
{
return $this->school;
}
如果没有不相关的查询,我怎样才能让我关心的查询正常工作?