我有 3 个实体
. "Ejuridique" 与 "onetomany" 有 1 个关系
. “Project”与“onetomany”有 1 个关系
. “照片”
当我对“Ejuridique”进行 1 次查询并在“项目”上进行级联左连接时,然后在“照片”上添加项目和照片条件时,我失去了所有没有项目的“Ejuridiques”。但我想保留所有的“Ejuridique”,即使他们没有项目。
我已经尝试了所有与论坛上类似的其他问题的解决方案,但它仍然不起作用。
在我的存储库中使用 querybuilder
class EjuridiqueRepository extends EntityRepository
{
public function myFindAll()
{
$qb = $this->createQueryBuilder('a')
->leftjoin('a.projets', 'pr' )
->leftjoin('pr.photos', 'ph' )
->where('pr.projetPosition = :position_pr')
->ANDwhere('ph.position = :position_ph')
->setParameters(array('position_pr'=> "1",'position_ph'=> "1"))
->addSelect('pr')
->addSelect('ph');
return $qb->getQuery()
->getResult();
}
}
或使用 DQL
$dql = "SELECT e,pr,ph FROM chlwebsitesBundle:Ejuridique e LEFT JOIN e.projets pr
LEFT JOIN pr.photos ph WHERE pr.projetPosition=1 AND ph.position=1";
$query = $this->getDoctrine()->getEntityManager()->createQuery($dql);
$ejuridiques = $query->getResult();
我用这两种方法都丢失了数据。
预先感谢您帮助我