I have a table Notes (id, id_matricula, id_evaluación, nota)
Through my controller I send the notes of a student logged in:
public function calificaciones($id)
{
$alumno = Alumno::find(auth('alumno')->user()->id);
$asignatura = Asignatura::find($id);
$evaluaciones = $asignatura->evaluaciones;
$matricula = Matricula::where('id_alumno','=',$alumno->id)->get()->last();
$notas = array();
foreach ($asignatura->notas as $nota)
{
if (!isset($notas[$nota->id_matricula]))
{
$notas[$nota->id_matricula] = array();
}
$notas[$nota->id_matricula][$nota->id_evaluacion] = $nota->nota;
}
return view('datos-alumno.calificaciones')->with('alumno',$alumno)->with('matricula',$matricula)->with('asignatura',$asignatura)->with('evaluaciones',$evaluaciones)->with('notas',$notas);
}
This is the view:
<table class="table table-bordered">
<tr>
@foreach ($evaluaciones as $e)
<th width="10">{{$e->nombre}} <a href="" data-target="#modal-show-{{ $e->id }}"" data-toggle="modal" class="btn-xs btn-info"> <span class="fa fa-info" aria-hidden="true"></span></a></th>
@include('datos-alumno.modal')
@endforeach
<th width="100">Promedio </th>
</tr>
<tr>
@for($i=0, $length = count($evaluaciones); $i < $length; $i++)
<td><input class="nota" disabled type="text" data-id-matricula="{{ $matricula->id }}" data-id-evaluacion="{{ $evaluaciones[$i]->id }}" value="{{ (isset($notas[$matricula->id]))? (isset($notas[$matricula->id][$evaluaciones[$i]->id]))?$notas[$matricula->id][$evaluaciones[$i]->id]: 1.0 : 1.0 }}"/></td>
@endfor
<td></td>
</tr>
How could I do that to calculate that average? I was trying with
$promedio = DB::table('notas')
->select(sum('notas')/count($evaluaciones))
->where('id_matricula',$matricula->id)
->get();