Laravel Eloquent リレーションの列の合計 質問する

Laravel Eloquent リレーションの列の合計 質問する

私はショッピング カート アプリケーションの開発に取り組んでいましたが、次のような問題が発生しました。

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

  • カート テーブルには、、、およびタイムスタンプの列のみが含まiduser_idますproduct_id
  • UserModelhasManyカート (ユーザーは複数の製品を保存できるため)。
  • CartModelbelongsToユーザーと CartModelhasMany製品。

合計積を計算するには、次のように呼び出すだけですAuth::user()->cart()->count()

私の質問は、SUM()このユーザーのカート内の製品の価格(製品の列)を取得するにはどうすればよいかということです。
クエリを使用するのではなく、Eloquent を使用してこれを実現したいと思います(主に、その方がはるかにクリーンだと考えているためです)。

ベストアンサー1

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

いくつかのメソッドのドキュメントは少し薄いですCollectionが、クエリビルダーの集計はすべて利用できるようです。avg()それ以外は次の場所にあります。http://laravel.com/docs/queries#集計

おすすめ記事