我有一张发票数据库表和一张发票头寸(基本上是标题,价格和数量)。现在我想得到发票的总金额。
以下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的雄辩模型中获得相同结果的最佳方法是什么?
答案 0 :(得分:1)
最简单的方法是使用DB
外观,虽然有一点魔力但你可以在Invoice
模型上实际执行此操作(但这更复杂,不必要)。
这里的诀窍是在DB::raw
方法中使用sum
。
$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'))