laravel 4 を使用してデータベースに問い合わせていますが、結果を効果的に使用する方法がわかりません。基本的に、販売ごとにタイプごとに合計を合計し、各タイプを製品タイプに固有の変数に割り当てられるようにしたいと考えています。
私のクエリは次のとおりです。
$sales_group = DB::table('items')
->select(DB::raw("products.type, sum(items.sub_total) as sub_total"))
->join('products','products.id','=','items.product_id')
->where('invoice_id','=',$receipt->invoice_id)
->groupBy('products.type')
->get();
products は製品のリストであり、 items テーブルは売上請求書に添付されたアイテム/製品です。
これは、請求書に応じてコレクションを作成しますか? これには、製品タイプと、その請求書の製品タイプに一致するすべての売上の合計が含まれています。
コレクションの構造は次のとおりです。
array (size=2)
0 =>
object(stdClass)[683]
public 'type' => string 'Buggy' (length=5)
public 'sub_total' => string '20.00' (length=5)
1 =>
object(stdClass)[684]
public 'type' => string 'Green Fee' (length=9)
public 'sub_total' => string '54.00' (length=5)
次に、各結果を変数に割り当てて、後で使用するようにします。たとえば、変数の上のコレクションを使用して$buggy
、$greenFee
これを効率的に行うにはどうすればよいですか?where()
次のようなコレクションで使用しようとしました。
$greenFees = $sales_group->where('type','=','Green Fee')
->first();
元のクエリから削除get()
しましたが、次の結果の値を取得できませんでした。
クエリの変更を検討する必要がありますか?
割り当てを簡単にするために使用できる方法はありますか?
ありがとう