2013-05-26 33 views
6

可以在Laravel Eloquent中將with函數與GroupBy子句一起使用嗎?如果我有使用選擇條款進行選擇的特定項目,它是否有用?在Laravel Eloquent中,with函數可以與GroupBy子句一起使用嗎?

以下是查詢我現在有

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

order表已列名campaign_idbelongsTo命名campaigns表。我希望從訂單表中獲得每個廣告系列的銷售總數,並且需要按照以下方式顯示。

Total Sales  Campaign 
------------------------- 
    200   Campaign1 
    500   Campaign2 
    300   Campaign3 

我是否必須執行特定的選擇,還是可以從上述查詢訪問Campaign表的值?

回答

7

如果在With函數上指定的模型所需的引用列在SELECT子句中檢索,則上述查詢會考慮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')); 

這樣的活動信息可以使用

foreach($groupedSalesCampaign as $campaign) 
{ 
     Log::info($campaign->foo->bar); 
} 

編輯檢索。

相關問題