有人告诉我可以使用模型中的函数来获取某些列值的总和,而不是使用foreach进行此代码:
$orders = Order::where('place_id',1)->select('delivery_fees')->get()->toArray();
$orderArray = [];
foreach ($orders as $order)
{
$orderArray[] = $order['delivery_fees'];
}
$deliveryCostTotal = array_sum($orderArray);
我该怎么做?
使用Mysql SUM
$deliveryCostTotal = Order::where('place_id',1)->selectRaw('SUM(delivery_fees) AS cost_total')->first()->cost_total;
您可以使用laravel sum函数
$orders = Order::where('place_id',1)->get();
$deliveryCostTotal = $orders->sum('delivery_fees');
这是这样的
collection()->sum('amount');
您仅将值设置为数组并覆盖它,请使用array_push
在数组中添加数据。
$orders = Order::where('place_id',1)->select('delivery_fees')->get()->toArray();
$orderArray = [];
foreach ($orders as $order)
{
array_push($orderArray,$order['delivery_fees']);
}
$deliveryCostTotal = array_sum($orderArray);
请尝试这样$ deliveryFees = Order :: where('place_id',1)-> sum('delivery_fees');