2017-03-17 47 views
0

對於在Symfony的3項目,原則優化的查詢,我要選擇這樣的多個實體:主義DQL查詢得到的所有記錄與多對多關係

實體的「e」有一對多關係,「一個」有還與「非盟」一個一對多的關係(「AU」應該是鏈接表的多對多關係,而且我需要在它的一些額外的字段)

$qb = $this->createQueryBuilder('e'); 

    return $qb->select('e, d, du') 
      ->leftJoin('e.demos', 'd') 
      ->leftJoin('d.demo_user', 'du') 
      ->getQuery() 
      ->getResult(); 

如果我的關係,一個是空的(沒有demo_user例如),我的實體e和相關不會發送結果。即使沒有演示和demo_user相關,我也希望獲得所有結果。

謝謝您的幫助;-)

回答

0

實例連接3 Entit查詢: 您查詢桅杆鏈接表

return $this->createQueryBuilder('e') 
    // if skip "->select ..." then resive all collumn form enities: E, AU, DU 
    ->select(
     'e.id as id', 
     'e.taskName as taskName', 
      'e.dueDate as dueDate', 
      'au.isOwn as isOwn', 
      'du.fild2 as fild2' 
     ) 
     ->leftJoin('YourBundle:EntityAU', 'au', 'WITH', 'au.idTask = e.id') 
     ->leftJoin('YourBundle:EntityDU', 'du', 'WITH', 'ad.fild1 = au.id') 
     ->where('au.idParent = :par1') 
     ->setParameter('par1', $varId) 
     ->orderBy('t.parentString', 'ASC') 
     ->getQuery() 
     ->getResult();