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" 

在交易属性。

这现在是我想要得到的数量不是。