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!