2013-05-02 50 views
0

我使用querybuilder進行了查詢。它看起來很喜歡:不使用Doctrine 2查詢所有對象querybuilder

//Create a Querybuilder 
     $qb = $this->_em->createQueryBuilder(); 

     //Foreach entity, check if it's a join and leftjoin it. 
     //If there's no join, make it the select 
     foreach($config['entities'] as $name => $entity) 
     { 
      //add new alias(ses) to select statement 
      $qb->addSelect($entity['alias']); 

      if(!isset($entity['join'])){ 
       $qb->from($entity['path'], $entity['alias']); 
      } else { 
       $qb->leftJoin($entity['join'], $entity['alias']); 
      } 
     } 
      ->orWhere(':test IS NULL') 
     ->setParameter('test', 'User\Entity\Address'); 

    //Make the query 
    $query = $qb->getQuery(); 

    //Return the result 
    return $query->getResult(); 

我使用配置文件動態選擇和左連接。所以人們可以自己加入。但是,當我有(例如)用戶和地址。它僅顯示帶有地址的用戶。沒有地址的用戶不顯示。當我沒有加入時,所有用戶都會出現。有人對此有所瞭解嗎?我讀了類似的東西,我必須設置where子句並執行類似操作:

->orWhere(':test IS NULL') 
      ->setParameter('test', 'User\Entity\Address'); 

它不起作用。我如何加入並顯示所有用戶也沒有地址?

Grtz

回答

0

我有一個問題,我的where子句。它有一個「喜歡」的地方,他想在那裏喜歡「街道」(從地址)到某種東西。但是,當用戶沒有地址時,他不喜歡,所以他不顯示整個用戶。

相關問題