问题描述
这是我的第一篇文章。我的 Laravel 项目遇到了麻烦 这是我的数据表。
我有像 1,2,3 这样的学生 ID。每个学生都有多个结果,然后是课程。 我需要这样安排他们
有没有什么办法可以根据学生来安排。 谢谢
代码:控制器:
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
嵌套/访问索引。 >
您可以打印出您的 $batch_students_grouped->all()
并查看您应该如何迭代您的数据并将其显示在前端。