Laravel雄辩的关系的列的总和
嗨,我一直在一个shoppingcart应用程序,现在我已经到了以下问题..
有一个用户,一个产品和一个购物车对象。
– 购物车表只包含以下列:“id”,“user_id”,“product_id”和时间戳。
– UserModel“hasMany”推车(因为用户可以存储多个产品)。
– CartModel“属于”用户和CartModel“hasMany”产品。
现在来计算我可以调用的总产品: Auth::user()->cart()->count()
。
我的问题是:我怎样才能得到这个用户在购物车中的产品的价格(一列产品)的SUM()?
我想通过雄辩而不是使用查询(主要是因为我相信这是一个更清洁)来完成这一点。
-Thanx
Auth::user()->products->sum('price');
这些文档对于某些Collection
方法稍微有点亮,但除了avg()
之外,所有的查询生成器集合都可以在http://laravel.com/docs/queries#aggregatesfind。;
我试着做类似的事情,在弄清楚collection()函数之前花了很多时间。 所以你可以这样做:
collection($items)->sum('amount');
这会给你所有项目的总和。
这不是你的答案,而是那些来这里寻找解决scheme的另一个问题。 我想有条件地得到相关表的一列的总和。 在我的数据库交易有很多活动我想从“活动”表中“amount_total”的总和,其中activities.deal_id = deal.id和activities.status =支付,所以我做到了这一点。
$query->withCount([ 'activity AS paid_sum' => function ($query) { $query->select(DB::raw("SUM(amount_total) as paidsum"))->where('status', 'paid'); } ]);
它返回
"paid_sum_count" => "320.00"
在交易属性。
这现在是我想要得到的数量不是。