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

标签 laravel laravel-5 eloquent laravel-4

数据库结构:
表: 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/

相关文章:

php - Laravel 4 : View [a. b] 未找到。

Laravel集体使用onclick

php - Laravel 5.3 未经授权() AuthenticationException fatal error

php - Laravel 5.5 更新多对多关系模型的复选框

php - 如何添加/导入示例 Laravel 项目?

laravel - 如何检查 Eloquent 多态关系是否存在?

php - 检查 MySQL 表中是否存在值,然后选择 [Laravel 5]

php - 使用嵌套字段进行多索引搜索

php - 使用相关模型的Count加载laravel eloquent模型

php - Eloquent BelongsToMany 关系搜索为空