У меня есть следующий запрос, который работает правильно:
$q = $this->createQuery('e')
->where('e.Persons_idUser =?', $request)
->leftJoin('e.JobTitles jt')
->leftJoin('e.EmploymentLevels el');
но когда я повторяю результат и пытаюсь получить доступ к полям из левого соединения:
foreach ($work as $w){
echo $w->employername;
echo $w->jobtitle; // this is from the left join
echo $w->employmentlevel; // this is from the left join
}
Появилось следующее сообщение об ошибке: Неизвестное свойство записи/связанный компонент "jobtitle" в "Experience"
Кто-нибудь понял? Как эхо поле из левого соединения?
<?php
foreach ($work as $w){
echo $w->employername;
foreach($w->JobTitles as $job){
echo $job->jobtitle; // this is from the left join
}
foreach($w->EmploymentLevels as $employ){
echo $employ->employmentlevel; // this is from the left join
}
}
?>
Это будет работать, так как symfony возвращает массив объектов, а элементы из таблицы join попадают под дочерний массив
Решение:
foreach ($work as $w){
echo $w->employername;
echo $w->JobTitles->jobtitle; // this is from the left join
echo $w->EmploymentLevels->employmentlevel; // this is from the left join
}
$w->EmploymentLevels->employmentlevel