Come eseguire una query di join usando Symfony e Doctrine Query Builder

Ho due entity framework; collegate tramite una relazione 1: 1, ad esempio: MyEntity.idRelatedEntity Voglio creare una query Doctrine in cui posso recuperare i dati da MyEntity base a un valore di una determinata colonna in RelatedEntity . Qualcosa di simile (non funziona ovviamente):

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

Qualsiasi aiuto sarebbe molto apprezzato 🙂

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

Anche left join non ha senso qui (a causa di where clausola che lo farà funzionare come inner join)

Nota che dovresti scrivere questa query nel tuo MyEntityRepository

 public function getMyEntityWithRelatedEntity($parameter) { $query = $this->createQueryBuilder('e') ->leftJoin('e.relatedEntity', 'r') ->where('r.foo = :parameter') ->setParameter('parameter', $parameter) ->getQuery(); return $query->getResult(); } 

E poi usalo nel tuo controller / servizio:

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