如何在Laravel中计算对象的特定属性之和

时间:2019-04-10 06:12:23

标签: php laravel

我只是想在显示时计算值的总和,但不是在计算总和,而且会引发错误

  

“无法转换为int”

下面是代码

@foreach ($order->products as $product)
  {{ $product->line_total}}
@endforeach

  {{ $product->line_total->sum() }}

在Databse中,总共有25条记录,而匹配的结果对象只有8条。

  {{ $product->sum('line_total') }}

它给了我所有25个条目的总和,而不是8个

1 个答案:

答案 0 :(得分:0)

您需要对主要集合进行汇总,而不是对单个模型进行汇总:

$order->products->sum("line_total")

如果您的line_total是另一个模型而不是整数,则首先需要将该模型收集到一个集合中:

$line_totals_collection = collect($order->products->pluck("line_total"));

然后使用该新集合,可以使用sum方法:

$totals_sum = $line_totals_collection->sum("value");

如果您的可汇总属性不同于value,则可以使用它。