Laravel - 刀片中的数学计算

时间:2017-07-28 03:14:17

标签: php 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,因此具有相同名称的项目只会显示一次,但我在设计算法时会出现问题,并将小计加起来。

2 个答案:

答案 0 :(得分:0)

试试这个, 这为您提供了所有项目的相同项目名称的成本总和。

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

答案 1 :(得分:0)

你可以利用Laravel的收集方法。您可以使用GroupBy method按产品名称创建分组子阵列,并使用Sum method的foreach返回总列的总和。