gpt4 book ai didi

laravel - 如何通过 Laravel Eloquent 查询获取总和

转载 作者:行者123 更新时间:2023-12-02 18:35:11 25 4
gpt4 key购买 nike

数据库结构:
表: sales_ payments
列: id, payer_id, payment_status, amount , ...

请看看这个 Eloquent 查询。它工作正常,但现在我需要金额键的总和以及给定的 Eloquent 查询和条件。

    $query =  SalesPayment::with(['abc.xyz'])

->whereHas('abc.xyz', function ($query) use ($options) {
$query->where('xyz_id',$options['xyz_id']);
});

$query->where(['key3' => key3(), 'payment_status' => PAYMENT_STATUS_SUCCESS]);
$query->orderBy('created_at', 'desc');
return $query->paginate(config('constants.PAGE_LIMIT'));

可能的解决方案

只需按如下所述进行选择

$query =  SalesPayment::select('*', \DB::raw('SUM(amount) AS total_sale_amount')->with ....

我已经测试了这个解决方案,它工作正常。

请告诉我是否有比这更好的解决方案。我也在寻找其他一些解决方案。

编辑:但是这个解决方案有一个问题,当我将聚合函数(sum)放入选择中时,它只返回一条记录,否则它会返回多个记录。

最佳答案

您可以在查询中使用 sum 方法。

$amount = $query->sum('amount');

将执行具有相同条件的新查询来计算列的总和。

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

关于laravel - 如何通过 Laravel Eloquent 查询获取总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59526950/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com