How to perform a join query using Symfony and Doctrine Query Builder How to perform a join query using Symfony and Doctrine Query Builder symfony symfony

How to perform a join query using Symfony and Doctrine Query Builder


$entity = $em    ->getRepository('MyBundle:MyEntity')    ->createQueryBuilder('e')    ->join('e.idRelatedEntity', 'r')    ->where('r.foo = 1')    ->getQuery()    ->getResult();

Also left join makes no sense here (because of where clause that will make it work like inner join)


Note that you should write this query in your MyEntityRepository

public function getMyEntityWithRelatedEntity($parameter) {    $query = $this->createQueryBuilder('e')        ->addSelect('r') // to make Doctrine actually use the join        ->leftJoin('e.relatedEntity', 'r')        ->where('r.foo = :parameter')        ->setParameter('parameter', $parameter)        ->getQuery();    return $query->getResult();}

And then use it in your controller/service :

$manager = $this->getDoctrine()->getManager();$results = $manager->getRepository(MyEntity::class)->getMyEntityWithRelatedEntity(1);