是否可以计算内部刀片模板的平均值?我正在使用foreach循环来显示学生的科目和年级,并且在平均部分上如何求总平均值,通过刀片或控制器计算此问题的最佳方法是什么?目的是产生总平均数。
这是查看代码:
@foreach($scores as $score)
<td> {{$score->subject->subject_name}}</td>
<td> {{$score->result}}</td>
<td> {{$score->getGrade()}}</td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> {{$score->final}}</td>
<td> {{$score->average()}}</td>
@endforeach
答案 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()
函数会将其舍入到小数点后两位。