with函数可以与Laravel Eloquent中的GroupBy子句一起使用吗?

Abi*_*hek 7 group-by laravel eloquent laravel-4

with函数可以与Laravel Eloquent中的GroupBy子句一起使用吗?如果我使用Select Clause选择特定项目,它是否可以用于任何目的?

以下是我目前的查询

Order::with('Campaign')
            ->where('isapproved','=','Y')
            ->groupBy('campaign_id')
            ->orderBy(DB::raw('COUNT(id)','desc'))
            ->get(array(DB::raw('COUNT(id) as totalsales')));
Run Code Online (Sandbox Code Playgroud)

order表中有一列名campaign_idbelongsTo表命名campaigns.我想从订单表中获取每个广告系列的销售总数,并需要按以下方式显示.

Total Sales     Campaign
-------------------------
  200            Campaign1
  500            Campaign2
  300            Campaign3
Run Code Online (Sandbox Code Playgroud)

我是否必须执行特定选择,还是可以从上述查询中访问Campaign表的值?

Abi*_*hek 7

如果在SELECT子句中检索在With函数上指定的Model所需的引用列,则With上述查询将考虑该函数.经过纠正的查询将是

$groupedSalesCampaign = Order::with('Campaign')
            ->where('isapproved','=','Y')
            ->groupBy('campaign_id')
            ->orderBy(DB::raw('COUNT(id)','desc'))
            ->get(array(DB::raw('COUNT(id) as totalsales'),'campaign_id'));
Run Code Online (Sandbox Code Playgroud)

这样可以使用检索Campaign信息

foreach($groupedSalesCampaign as $campaign)
{
      Log::info($campaign->foo->bar);
}
Run Code Online (Sandbox Code Playgroud)

编辑.