如何计算刀片模板的平均值?

时间:2018-07-31 00:49:21

标签: php laravel laravel-blade

带有此图片 enter image description here

是否可以计算内部刀片模板的平均值?我正在使用foreach循环来显示学生的科目和年级,并且在平均部分上如何求总平均值,通过刀片或控制器计算此问题的最佳方法是什么?目的是产生总平均数。

这是查看代码:

@foreach($scores as $score)

<td>&nbsp;{{$score->subject->subject_name}}</td>
<td>&nbsp;{{$score->result}}</td>
<td>&nbsp;{{$score->getGrade()}}</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;{{$score->final}}</td>
<td>&nbsp;{{$score->average()}}</td>

  @endforeach

3 个答案:

答案 0 :(得分:2)

避免混淆的最好方法是在控制器中计算平均值并将其作为变量发送,因此您不必在视图中操作数据。您可以通过两种方式做到这一点,在视图中手动操作或在控制器中使用模型。

以下是使用模型的示例:How to get average of column values in laravel

$ average =分数:: avg('average')

或者通过在视图中手动添加变量,然后将先前的值添加到变量中并用count($ scores)除。

希望有帮助。

答案 1 :(得分:1)

您可以使用$scores->avg('average')来获得总平均值。

答案 2 :(得分:1)

因此,看来您的$ score是一个集合实例。您可以使用Laravel集合中可用的任何方法:https://laravel.com/docs/5.6/collections#available-methods

如果您仔细检查此链接,则有一个名为avg()的方法。使用此方法,您可以计算任何给定键的平均值。在刀片中:

{{round($scores->avg('average'), 2)}}

在这里,$scores->avg('average')将计算所有average得分的平均值,而round()函数会将其舍入到小数点后两位。