如何根据学生设计结果

How to design result according students

这是我的第一个 post。我的 laravel 项目遇到了麻烦 这是我的数据 table。

我有学号1,2,3。每个学生都有多个结果,然后是课程。 我需要这样安排他们

我尝试了 groupby 并得到了这个结果

有没有什么办法可以按照学生来安排。 谢谢

代码:控制器:

public function notification()
{
    $auth_id = Auth::user()->id;
    $teacher = Teacher::where('user_id', $auth_id)->first();
    $teacher_id = ($teacher->id);
    $batch = Batch::where('teacher_id', $teacher_id)->first();

    $courses = AssignCourses::with('course')
        ->where('semester_id', $batch->semester_id)
        ->get();

    $current_semester_results = Result::with(['student', 'course'])
        ->where('semester_id', $batch->semester_id)
        ->get()
        ->groupBy('student.id');

    $batch_students = Student::with('result')
        ->where('semester_id', $batch->semester_id)
        ->get();

    return view('users.teacher.my_batch.notification', compact(['current_semester_results', 'courses', 'batch_students']));
}

只需使用 $batch_students 并在您的 PHP 代码上应用任何聚合,这样做会更容易。

$batch_students = Student::with('result')
    ->where('semester_id', $batch->semester_id)
    ->get();

$batch_students_grouped = $batch_students->groupBy('result.student_id');

注意: 由于没有表格,我无法进行测试,因此您可能需要更改 student_id nest/access 中的索引最后一行代码。

您可以打印出您的 $batch_students_grouped->all() 并查看您应该如何迭代数据并将其显示在前端。