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

问题描述 投票:0回答:4

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

我该怎么做?

php laravel eloquent
4个回答
1
投票

使用Mysql SUM

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

0
投票

您可以使用laravel sum函数

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

这是这样的

collection()->sum('amount');

https://laravel.com/docs/6.x/queries#aggregates


0
投票

您仅将值设置为数组并覆盖它,请使用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);

0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.