2012-06-13 40 views
-1

我有兩種模式:用戶和具有多對多關係的組。所以我需要選擇所有沒有分組的用戶。我必須通過DQL來實現。通過DQL獲取沒有組的用戶

好吧,更多的信息。我在Symphony 2中使用了奏鳴曲管理軟件包。在我的列表視圖中,我想顯示與組沒有關係的用戶。例如:當管理員在管理面板創建用戶時,他爲該用戶選擇組。但是,當用戶從前端註冊時,該用戶沒有任何組。所以,我想看看所有沒有組的用戶。在管理類中的奏鳴曲管理包中,我可以繼承createQuery方法,在那裏我可以編寫自己的DQL查詢。舉個例子:

public function createQuery($context = 'list') 
{ 
    $query = parent::createQuery($context); 
    $query->andWhere('o.admin = TRUE'); 
    $query->orderBy('o.loginDate', 'DESC'); 

    return $query; 
} 

所以,在我的情況下,我想選擇用戶無需組,這樣的事情:

public function createQuery($context = 'list') 
{ 
    $query = parent::createQuery($context); 
    $query->addSelect('g'); 
    $query->leftJoin('o.groupList', 'g'); 

    // here I need some DQL which chose users without groups 

    return $query; 
} 

所以,現在任何人可以幫助?

+0

[我可以在DQL中使用「ON」關鍵字還是需要使用Native Query?](http://stackoverflow.com/questions/8748664/can-i-use-on-keyword-in -dql-or-do-i-need-to-use-native-query) – hakre

+0

請多描述一下你的問題。這是一個編程網站,例如你可以展示你的代碼嗎?它不一定需要工作,但是這應該讓你更清楚地知道遇到的具體問題。 – hakre

回答

1

如果你有一個關係到用戶,就像一個組屬性是一個ArrayCollection,那麼你可以簡單地得到用戶在哪裏count(u.groups)= 0或類似的東西?