我正在使用 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 是产品列表和项目表是附加到销售发票的项目/产品。
这个,根据发票会创建一个集合吗?包含产品类型和与该发票中产品类型匹配的所有销售额的总和。
该集合具有以下结构:
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()
从原始查询中删除,但我无法获得下一个结果的值。
我应该看看更改查询吗?
有没有一种方法可以让分配变得更容易?
谢谢