分页时计算相关模型的列

时间:2019-04-05 08:59:10

标签: laravel-5

我有一个名为Invoice的模型,它与hasManyInvoiceItems有关系。在InvoiceItems中有一个名为total的字段/列。处理分页时如何计算该字段?这是代码

$periode = $months_translate[date('n') - 1].'-'.date('Y');

$invoices = Invoice::where('billing_period', $periode)
->orderBy('number')->paginate($per_page);

$total_amount = 0; // this is what i am trying to figure out.
foreach($invoices as $invoice){
    foreach($invoice->items as $item){
        $total_amount += $item->sum('total');
    }
}

$total_amount正在计算所有记录,包括当前billing_period外部消息,因此简单地给出了错误的结果。

1 个答案:

答案 0 :(得分:0)

编写查询时需要使用laravel和方法,它将获得满足您给定条件的发票的发票项目。 阅读此Eager Loading

$invoices = Invoice::with('InvoiceItems')->where('billing_period', $periode)
                 ->orderBy('number')->paginate($per_page);