Laravel Eloquent - 来自相关数据的多个记录的列值的总和
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Laravel Eloquent - 来自相关数据的多个记录的列值的总和相关的知识,希望对你有一定的参考价值。
我有以下型号:用户,订单,订单付款
每个订单都有很多订单,每个订单都有很多订单付款。
orderPayment模型具有属性“total_paid”
我想得到用户所有订单总额的总和。
例如:用户有3个订单。
- 第一个订单有以下两个付款记录:5 $和4 $。
- 第二个订单有一个10美元的付款
- 第三个订单有两个支付记录1 $和4 $
我想要的总和是5 + 4 + 10 + 1 + 4 = 24 $。
我尝试了以下但它根本不起作用:
$user->orders->orderpayment->sum('total_paid');
但我得到这个错误
此集合实例上不存在属性[orderPayment]
答案
由于您想要对OrderPayment模型中的值求和,因此从那里开始更容易。尝试这样写:
OrderPayment::whereHas('order.user', function($query) use ($userId)
$query->whereId($userId);
)->sum('total_paid');
确保所有关系都定义良好。
另一答案
尝试:
$user->orders->orderpayment()->sum('total_paid');
以上是关于Laravel Eloquent - 来自相关数据的多个记录的列值的总和的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Laravel Eloquent 中添加相关的聚合数据?
Laravel Eloquent - 保存/更新相关的一对多关系数据
Laravel 5.2 pluck() 来自 Eloquent 模型集合的多个属性