Meine MySQL-Tabelle sieht wie folgt aus (der relevante Teil) Verwendung:eine foreach Variable in einer Laravel Ansicht
student_id (int) | engmins(int) | totalmins(int) | created_at (datetime)
1 | 50 | 100 | 2017-12-15 00:00:00
1 | 20 | 45 | 2017-12-15 00:00:00
habe ich den folgenden Code:
$students = StudentDetails::with('student','studentschool','classactivity')
->where('class', 1)
->orderBy('studentgrade', 'DESC')
->get();
$calculatePercentage = array();
foreach ($students as $s)
{
$fetchEngClassPercents= DB::table('ClassActivity')
->select(DB::raw('round((sum(engmins) * 60)/(sum(totalmins) * 60) * 100) as percents'))
->where('created_at', '>=', Carbon::now()->subDays(30))
->where('student_id', '=', $s->student->id)->get();
foreach($fetchEngClassPercents as $f)
{
$calculatePercentage = $f->percents;
var_dump($calculatePercentage); //Debug purposes
}
}
var_dump($calculatePercentage); //Debug purposes
$params = [
'engClassPercentage' => $calculatePercentage,
'studentInfo' => $students,
];
return view('user.classes.engclass.index', $params);
- Var_dump innerhalb der Schleife ausführt Zeichenfolge (2) "43" NULL
- var_dump AUSSERHALB der Schleife wird ausgeführt NULL
Dies ist, wie es in der Ansicht aussieht:
<td>
@foreach($engClassPercentage as $p)
{{ $p->percents }}
@endforeach
</td>
nichts Das funktioniert nicht in der Ansicht, es zeigt einfach.
Aus irgendeinem Grund bleibt $ calculatePercentage außerhalb der Schleife null (nach vorherigem Versuch, die Variable auszugeben). Wenn es in der foreach-Schleife ist, führt es die Abfrage aus.
Die seltsame Sache ist, dass ich das Array ($ calculatePercentage) außerhalb der Schleife deklariert es mit der Variable in der foreach-Schleife zugewiesen.
Ich bin an dieser Stelle ziemlich verloren, um ehrlich zu sein, und ich würde mich freuen, wenn ich Hilfe bekommen kann.
versuchen Sie es wie diese Rückansicht verwenden ('user.classes.engclass.index') -> mit ('engClassPercentage', $ calculatePercentage); –
Ich habe andere Variable, die durch $ Ressourcen weitergegeben wird, wie würde ich es dann tun? –
$ params = [ 'engClassPercentage' => $ calculatePercentage, 'studentInfo' => $ Studenten, ]; Rückansicht ('user.classes.engclass.index') -> mit ($ params); –