2014-07-17 107 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