1

我正在使用 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()从原始查询中删除,但我无法获得下一个结果的值。

我应该看看更改查询吗?

有没有一种方法可以让分配变得更容易?

谢谢

4

0 回答 0