Что Laravel красноречивый сумма столбца отношения
Я работал над приложением shoppingcart, и теперь я пришел к следующему вопросу..
есть пользователь, продукт и объект Cart.
- Таблица корзина содержит только следующие столбцы:" id"," user_id"," product_id " и метки времени.
- Пользовательская модель" hasMany " тележки (потому что пользователь может хранить несколько продуктов).
- CartModel "принадлежит" пользователю и CartModel" hasMany " продукты.
теперь, чтобы вычислить всего продуктов я могу просто назвать:Auth::user()->cart()->count()
.
мой вопрос: Как я могу получить сумму() цен (столбец продукта) продуктов в корзине этим пользователем?
Я хотел бы сделать это с красноречивым, а не с помощью запроса (в основном потому, что я считаю, что это намного чище).
3 ответа:
Auth::user()->products->sum('price');
документация немного света для некоторых
Collection
методы, но все агрегаты построителя запросов, по-видимому, доступны помимоavg()
Это можно найти в http://laravel.com/docs/queries#aggregates.
это не ваш ответ, но для тех, кто приходит сюда в поисках решения другой проблемы. Я хотел получить сумму столбца связанной таблицы условно. В моей базе сделок есть много видов деятельности Я хотел получить сумму "amount_total" из таблицы Activities, где activities.deal_id = сделка.удостоверение личности и деятельности.статус = оплачено вот я и сделал это.
$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"
в атрибут сделок.
Это теперь сумма, которую я хотел не берите счет.