2014-07-17 104 views
0

我有一個電子郵件地址的表,並希望做出disctinct選擇(我的結果中沒有重複的電子郵件地址)。與電子郵件地址列被稱爲「MAIL_ADDRESS」Laravel 4 select distinct

我曾嘗試:

ContactMail::distinct('mail_address')->get(); 

和:

ContactMail::distinct()->get(); 

但兩者給我的只是整個表,也是在我行相同的電子郵件地址。

,我建立完整的查詢看起來是這樣的:

$list = ContactMail::where('campaign_id', '=', $campaign_id) 
       ->where('mail_address', '!=', '') 
       ->distinct('mail_address') 
       ->get(); 

我在做什麼錯?我沒有找到明顯的好文件。

回答

0
$list = ContactMail::where('campaign_id', '=', $campaign_id) 
      ->where('mail_address', '!=', '') 
      ->select('mail_address') 
      ->distinct() 
      ->get(); 
0

在ORM中使用distinct有點無意義 - 最終每個模型都是不同的。

所以我建議,你不加載模式,但單場,你需要:

$list = ContactMail::where('campaign_id', '=', $campaign_id) 
    ->where('mail_address', '!=', '') 
    ->distinct() 
    ->lists('email_address'); 

這樣你會得到不同的電子郵件的陣列,而不是全款,或不完整的模型時,使用selectget