1. ホーム
  2. php

[解決済み] Laravel Eloquent リレーションのカラムの総和

2022-05-16 08:26:29

質問

ショッピングカートのアプリケーションを作成しているのですが、次のような問題に直面しました。

ユーザー、商品、カートのオブジェクトがあります。

  • Cartテーブルには、以下のカラムのみが含まれています。 id , user_id , product_id とタイムスタンプがあります。
  • UserModelの hasMany カート(ユーザーが複数の商品を保存できるため)。
  • CartModel は belongsTo ユーザーと CartModel hasMany 製品

今、総製品数を計算するために私はちょうど呼び出すことができます。 Auth::user()->cart()->count() .

私の質問は、どのようにすれば SUM() の価格(商品の列)を取得することができますか?

私はこれをクエリを使用するのではなく、Eloquentで達成したいと思います(主に、私はそれがはるかにきれいだと信じているからです)。

どのように解決するのですか?

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

ドキュメントは、いくつかの Collection メソッドについてはドキュメントが少し不足していますが、すべてのクエリビルダの集約は avg() で見つけることができます。 http://laravel.com/docs/queries#aggregates .