ユーザーが所属している学校を取得したいのですが、何らかの理由で学校テーブルへのクエリを実行することによってのみアクセスできます。これは、他の方法では無関係です。これが私のコードです:
これは機能しません(コントローラー内):
$schoolsEnrolled = $this->getUser()->getSchools();
結果は、(何らかの理由で id 以外の) すべてのプロパティが null の School オブジェクトを含む配列になります。
これは機能します(コントローラー内):
//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;
}
関係のないクエリなしで、気になるクエリを機能させるにはどうすればよいですか?