为了账号安全,请及时绑定邮箱和手机立即绑定

如何在模型中获取laravel中的总和列值?

如何在模型中获取laravel中的总和列值?

PHP
蝴蝶刀刀 2022-07-09 18:07:02
有人告诉我,我可以使用模型中的函数来获取某些列值的总和,而不是使用 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


查看完整回答
反对 回复 2022-07-09
?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

使用 Mysql SUM

$deliveryCostTotal = Order::where('place_id',1)->selectRaw('SUM(delivery_fees) AS cost_total')->value('cost_total');


查看完整回答
反对 回复 2022-07-09
?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

请尝试这样

$deliveryFees = Order::where('place_id',1)->sum('delivery_fees');



查看完整回答
反对 回复 2022-07-09
?
蛊毒传说

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);


查看完整回答
反对 回复 2022-07-09
  • 4 回答
  • 0 关注
  • 179 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信