数据库结构:
表: 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');
将执行具有相同条件的新查询来计算列的总和。
关于laravel - 如何通过 Laravel Eloquent 查询获取总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59526950/