2017-07-28 83 views
0

是否可以從刀片中的數據庫中添加兩個整數?Laravel - 刀片中的數學計算

爲了給出一個場景,我有一個控制器來壓縮orders表的集合。

$solditems = DB::table('orders') 
      ->where('status', 'served') 
      ->orderBy('id') 
      ->get(); 

     return view('salesreports.sellingitems.index', compact('solditems')); 

而我在我的刀片中使用了這些。現在

   <table class="table table-hover"> 
        <tr> 
         <th>ID</th> 
         <th>Item</th> 
         <th>Sales</th> 
        </tr> 
       <thead> 
       </thead> 
        <tbody> 
         @forelse($solditems as $solditem) 
          <tr> 
           <td>{{$solditem->id}}</td> 
           <td>{{$solditem->item}}</td> 
           <td>{{$solditem->subtotal}}</td> 
          </tr> 
         @empty 
         @endforelse 
        </tbody> 
       </table> 

,我想要做的是具有相同的項目名稱或$solditem->item同時加入了有分類彙總的項目結合起來。

例如;

ID #1 Apple = 50 
ID #2 Apple = 80 

會變成這樣;

ID #1 Apple = 130 

我試着查詢構建器使用GROUPBY所以用相同名稱的項目將只顯示一次,但我在設計一個算法加入了分類彙總的問題。

回答

0

試試這個, 這給你所有項目的相同項目名稱的成本總和。

$solditems = DB::table('orders') 
       ->where('status', 'served') 
       ->select('orders.*',DB::raw('SUM() as total')) 
       ->groupBy('orders.item') 
       ->orderBy('id') 
       ->get(); 
+0

你好。我試過你的建議,但我有這個錯誤代碼; 'SQLSTATE [42000]:語法錯誤或訪問衝突:1064'它與'select'部分相關聯。 –

+0

哦!我很笨。我沒有在SUM()參數中加小計。所以我所做的就是將它改爲「SUM(小計)作爲小計」,它的工作方式就像魔術一樣。謝謝! :) –

+0

@JanArielSanJose任何方式祝賀 –

0

您可以利用Laravel的收集方法。您可以使用GroupBy method按產品名稱和這些組的foreach使用Sum method返回總列的總和來創建分組的子陣列。