Maison >développement back-end >tutoriel php >Comment calculer la somme des prix des produits dans un panier Laravel à l'aide d'Eloquent ?

Comment calculer la somme des prix des produits dans un panier Laravel à l'aide d'Eloquent ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-04 00:16:30838parcourir

How to Calculate the Sum of Product Prices in a Laravel Shopping Cart using Eloquent?

Calcul de la somme des valeurs de colonnes associées dans Laravel Eloquent

Dans une application de panier d'achat, vous devrez peut-être calculer la somme des prix des produits en fonction des produits présents dans le panier d'un utilisateur. panier. Cet article explique comment y parvenir à l'aide d'Eloquent, sans recourir à des requêtes brutes.

Un scénario de panier d'achat typique implique trois modèles : Utilisateur, Produit et Panier. Le modèle Cart contient des colonnes pour l'ID, l'ID utilisateur, l'ID produit et les horodatages. Le UserModel a une relation hasMany avec Carts, tandis que le CartModel a une relation appartiennentTo avec User et une relation hasMany avec Products.

Pour calculer le nombre total de produits dans le panier, vous pouvez utiliser Auth::user( )->cart()->count(). Cependant, pour obtenir la somme des prix des produits, vous pouvez utiliser l'expression éloquente suivante :

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

Ce code utilise la méthode sum() de la classe Collection, qui est disponible après avoir établi la relation produits. La méthode sum() calcule la somme de la colonne spécifiée, dans ce cas, la colonne prix du modèle Product.

En tirant parti des capacités de requête expressive d'Eloquent, vous pouvez facilement effectuer des calculs et des agrégations complexes sur vos données sans le besoin de requêtes SQL brutes.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn