2013-02-26 79 views
0

這是我的問題:我有一個用戶實體在地址實體上具有oneToMany關係。 我希望在單個查詢中獲得所有沒有地址的用戶。這是我的QueryBuilder:doctrine2得到一個沒有收集的實體列表

$qb = $this->createQueryBuilder('u') 
    ->where('u.enabled = :enabled') 
    ->setParameter('enabled', true) 
    //->andWhere('u.addresses ..... ?? how to do that ? 
    ->orderBy('u.created', 'DESC'); 

    if (is_int($limit) && $limit > 0) { 
     $qb = $qb->setFirstResult($offset) 
       ->setMaxResults($limit); 
    } 

    return $qb; 

我不知道怎麼的,在一個查詢,檢索所有用戶,沒有地址只有... 有人可以幫我嗎?

回答

2

DQL Documentation examples,使用IS EMPTY

$qb = $this 
    ->createQueryBuilder('u') 
    ->where('u.enabled = :enabled') 
    ->setParameter('enabled', true) 
    ->andWhere('u.addresses IS EMPTY') 
    ->orderBy('u.created', 'DESC'); 

    if ($limit) { 
     $qb = $qb 
      ->setFirstResult($offset) 
      ->setMaxResults($limit); 
    } 

    return $qb; 
+1

'+ 1'到fuhny馬恩! – 2013-02-26 11:31:56

+0

這就是我所嘗試的,而不是「是空的」我把「IS NULL」,它的工作 – emurb 2013-02-26 14:51:45

+0

@emurb你會把'IS NULL'的單值關聯和狀態字段 – Ocramius 2013-02-26 14:52:59