2017-02-03 9 views
1

Я хочу сделать что-то подобное с моим запросом:Symfony2 доктрина вложенной присоединиться отношением

SELECT * FROM `Parent` P 
LEFT JOIN `child` C ON P.id = C.parentID 
LEFT JOIN `childOfChild` CoC ON C.id = CoC.cID 
WHERE P.id = 1 

Я стараюсь это QueryBuilder, но не работаю.

$query = $this->getEntityManager() 
    ->createQueryBuilder() 
    ->select('P,C,CoC') 
    ->from('DspAppsBundle:Parent', 'P') 
    ->leftJoin('P.child', 'C') 
    ->leftJoin('C.childOfChild', 'CoC') 
    ->where('P.id = 1') 
    ->getQuery(); 

Может кто-нибудь сказать мне, как я делаю эту работу?

ответ

1

Привет попробовать что-то вроде этого (вы можете заменить GetResult() с getSingleResult() или что-то вам подходит):

$query = $this->getEntityManager() 
    ->createQueryBuilder() 
    ->select('P,C,CoC') 
    ->from('DspAppsBundle:Parent', 'P') 
    ->leftJoin('DspAppsBundle:Child', 'C', 'WITH', 'P.id = C.parentId') 
    ->leftJoin('DspAppsBundle:ChildOfChild', 'CoC', 'WITH', 'C.id = CoC.cId') 
    ->where('P.id = 1') 
    ->getQuery() 
    ->getResult(); 
+0

да. Благодарю. работа для меня. извините, медленный ответ. @piyushsingh –

+0

Удивительный. Не беспокойся! :) –

0

Вам нужно выполнить запрос, чтобы получить результаты.

$query = $this->getEntityManager() 
    ->createQueryBuilder() 
    ->select('P,C,CoC') 
    ->from('DspAppsBundle:Parent', 'P') 
    ->leftJoin('P.child', 'C') 
    ->leftJoin('C.childOfChild', 'CoC') 
    ->where('P.id = 1') 
    ->getQuery(); 
$result = $query->execute(); 

Что вы получите в $result?

+0

я действительно 'вернуть $ query-> getArrayResult();' , но не работает. –

+0

Что вы получаете в результате? Вы получаете нуль? – Jeet

 Смежные вопросы

  • Нет связанных вопросов^_^