2013-05-26 15 views
6

with機能をLaravel EloquentのGroupBy節とともに使用できますか?選択句を使用して選択する特定のアイテムがある場合、それはどんな目的にも役立ちますか?続きwith機能をLaravel Eloquentの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テーブルはcampaignsという名前のテーブルをbelongsTo列名campaign_idを持っています。私は、各キャンペーンに対して注文テーブルからの売上の合計数を取得したいと考えており、次のように表示する必要があります。

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

特定の選択を実行する必要がありますか、上記のクエリからキャンペーンテーブルの値にアクセスできますか?

答えて

7

With関数で指定されたモデルで必要とされる参照列がSELECT句で取得された場合、上記のクエリによってWith関数が考慮されます。整流クエリはキャンペーン情報が

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

編集を使用して取得することができますこの方法

$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')); 

になります。

関連する問題