Maison  >  Article  >  développement back-end  >  Comment calculer le prix total des produits dans le panier d'un utilisateur dans Laravel Eloquent ?

Comment calculer le prix total des produits dans le panier d'un utilisateur dans Laravel Eloquent ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-02 01:30:02283parcourir

How to Calculate the Total Price of Products in a User's Cart in Laravel Eloquent?

Calcul du prix total des produits dans le panier d'un utilisateur

Dans Laravel Eloquent, accéder et modifier les modèles associés est un jeu d'enfant. Un scénario courant consiste à calculer les totaux de modèles associés, tels que la somme des prix des produits dans le panier d'un utilisateur.

Pour réaliser cette tâche, vous pouvez tirer parti de la puissance des méthodes relationnelles d'Eloquent. Dans ce cas, un Utilisateur a une relation hasMany avec Cart, et un Cart appartient à l'Utilisateur.

Solution :

Pour calculer le prix total des produits dans le panier d'un utilisateur en utilisant Eloquent, il vous suffit d'enchaîner les méthodes suivantes :

<code class="php">Auth::user()->carts()
            ->where('user_id', Auth::user()->id)
            ->join('products', 'product_id', '=', 'products.id')
            ->sum('price');</code>

Explication :

  1. Auth::user() : Obtenez l'utilisateur actuellement authentifié.
  2. carts() : Obtenez les paniers associés à l'utilisateur.
  3. where('user_id', Auth::user()->id) : Filtrez les paniers pour inclure uniquement ceux appartenant à l'utilisateur actuel.
  4. join('products', 'product_id', '=', 'products.id') : Joignez la table cart à la table products en utilisant la colonne product_id.
  5. sum('price ') : Calculez la somme de la colonne prix dans le tableau des produits, qui représente le prix total des produits dans le panier.

Cette approche permet d'accéder aux fonctions d'agrégation disponibles dans les méthodes Collection de Laravel Eloquent , y compris sum(), count() et avg().

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