2017-07-28 7 views
0

ブレード内のデータベースから2つの整数を追加することはできますか?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を使用して合計列の合計を返すことができます。

関連する問題