Laravel Красноречивый Сумма столбца отношения

Я работал над приложением для покупок, и теперь я пришел к следующей проблеме.

Существует объект «Пользователь», «Продукт» и «Корзина».
– Таблица Корзина содержит только следующие столбцы: «id», «user_id», «product_id» и временные метки.
– UserModel «hasMany» Carts (потому что пользователь может хранить несколько продуктов).
– CartModel «принадлежит» пользователям и CartModel «hasMany».

Теперь, чтобы вычислить общие продукты, которые я могу просто вызвать: Auth::user()->cart()->count() .

Мой вопрос: как я могу получить SUM () цен (столбца продукта) продуктов в корзине этим пользователем?
Я хотел бы сделать это с помощью Eloquent, а не с помощью запроса (главным образом потому, что я считаю, что он намного чище).

Solutions Collecting From Web of "Laravel Красноречивый Сумма столбца отношения"

Auth::user()->products->sum('price');

Документация немного облегчает некоторые из методов Collection но все агрегаторы построителей запросов, по-видимому, доступны помимо avg() которые можно найти по адресу http://laravel.com/docs/queries#aggregates .

Я попытался сделать что-то подобное, и это заняло у меня много времени, прежде чем я смог выяснить функцию collection (). Таким образом, вы можете иметь что-то таким образом:

collection($items)->sum('amount');

Это даст вам общую сумму всех предметов.

это не ваш ответ, но для тех, кто приходит сюда, искать решение для другой проблемы. Я хотел бы получить сумму столбца связанной таблицы условно. В моей базе данных «Сделки» имеет много видов деятельности. Я хотел получить сумму «amount_total» из таблицы «Действия», где activity.deal_id = deal.id и activities.status = paid, поэтому я сделал это.

 $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" 

в атрибуте Сделки.

Это теперь сумма, которую я хотел получить не по счету.