Только столкнулся с Symfony 2, поэтому появилась небольшая трудность по незнанию всех тонкостей, собственно вопрос:
Есть 3 сущности Login, Campain, Banner, они соответственно взаимосвязаны Login имеет ArrayCollection c связанными Campain, она в свою очередь коллекцию с её Banner
/**
* @ORM\OneToMany(targetEntity="Campain", mappedBy="Login", indexBy="CampaignID", cascade={"persist", "remove" })
*/
protected $Campains;
/**
* @ORM\OneToMany(targetEntity="Banner", mappedBy="Campain", indexBy="BannerID", cascade={"persist", "remove" })
*/
protected $Banners;
Можно ли составить запрос, чтобы без ленивой загрузки за 1 раз создать объект Login с уже загруженными всеми связанными Campain и для каждой из них тоже выбрались связанные Banner?
Пробовал такую конструкцию в репозитории, не получается
$this->getEntityManager()->createQuery('
SELECT Login, Campain, Banner
FROM BroAppBundle:Login Login
LEFT JOIN Login.Campains Campain
LEFT JOIN Campain.Banners Banner
WHERE Login.User=:user_id')
->setParameter('user_id', $user_id)->getResult();
Таблицы присоединяются, но сущности не группируются и когда вызываю например цикл
foreach($Logins as $Login){
foreach($Login->getCampains() as $Campain){
$Campain->GetBanners();
}
}
каждую итерацию идут запросы к базе на выборки.