Как выполнить запрос на соединение с помощью конструктора запросов Symfony и Doctrine Query Builder

У меня есть два объекта, которые связаны через отношения 1: 1, например: MyEntity.idRelatedEntity Я хочу создать запрос Doctrine, где я могу получить данные из MyEntity зависимости от значения из определенного столбца в RelatedEntity . Что-то вроде этого (это, конечно, не работает):

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

Любая помощь приветствуется 🙂

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

Также левое соединение не имеет смысла здесь (из-за того, что предложение, которое заставит его работать как внутреннее соединение)

Обратите внимание, что вы должны написать этот запрос в своем MyEntityRepository

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

И затем используйте его в своем контроллере / службе:

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