2016-04-29 102 views
1

私は請求書用のデータベーステーブルと請求書ポジション(基本的にはタイトル、価格、数量)を保持するデータベーステーブルを持っています。今私は請求書の総額を取得したい。Eloquent Collectionsを合計して掛け算しますか?

次のSQLクエリはそのために正常に動作します:

SELECT *, SUM(invoice_positions.price * invoice_positions.quantity) as total FROM `invoices` LEFT JOIN invoice_positions ON invoice_positions.invoice_id = invoices.id WHERE date = '2015-07-20' 

laravelの雄弁なモデルで同じ結果を達成するための最良の方法は何ですか?

答えて

1

DBファサードを使用するのが一番簡単な方法ですが、実際にはInvoiceモデルでこれを行うことはできますが、それはもっと複雑で不必要です。

sumの方法ではDB::rawを使用します。

$total = DB::table('invoices') 
      ->leftJoin('invoice_positions', 'invoice_positions.invoice_id', '=', 'invoices.id') 
      ->where('invoices.date', '2015-07-20') 
      ->sum(DB::raw('invoice_positions.price * invoice_positions.quantity')) 
関連する問題