有人告诉我,我可以使用模型中的函数来获取某些列值的总和,而不是使用 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);我怎样才能做到这一点 ?
4 回答
慕的地10843
TA贡献1785条经验 获得超8个赞
您可以使用 laravel sum 函数
$deliveryCostTotal = Order::where('place_id',1)->sum('delivery_fees');
https://laravel.com/docs/6.x/queries#aggregates
鸿蒙传说
TA贡献1865条经验 获得超7个赞
使用 Mysql SUM
$deliveryCostTotal = Order::where('place_id',1)->selectRaw('SUM(delivery_fees) AS cost_total')->value('cost_total');
蛊毒传说
TA贡献1895条经验 获得超3个赞
随着您的问题得到解决,但我认为我的答案是消除您的困惑array_sum并在数组中添加数据。因为您只是将值设置为数组并覆盖它,所以用于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);
- 4 回答
- 0 关注
- 179 浏览
添加回答
举报
0/150
提交
取消