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

有人告诉我,我可以使用模型中的函数来获取某些列值的总和,而不是使用 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);

我怎样才能做到这一点 ?


蝴蝶刀刀
浏览 180回答 4
4回答

慕的地10843

您可以使用 laravel sum 函数$deliveryCostTotal = Order::where('place_id',1)->sum('delivery_fees');https://laravel.com/docs/6.x/queries#aggregates

鸿蒙传说

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

汪汪一只猫

请尝试这样$deliveryFees = Order::where('place_id',1)->sum('delivery_fees');

蛊毒传说

随着您的问题得到解决,但我认为我的答案是消除您的困惑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);
打开App,查看更多内容
随时随地看视频慕课网APP