我正在建立一个学生管理应用程序。我被困在看课堂报告。我可以显示每个学生的个人报告(分数,百分比,个人信息,精神运动领域等)。但是我需要在一个网页上显示一个班级每个学生的所有报告,中间有分页符。所以我们会在很长的网页上显示学生1的所有分数和信息,学生2的所有分数和信息等。我在db上的results表有studentid和studentclass列来区分事物。我觉得我应该用forloop,但我不知道该怎么做。下面是我的控制器:
public function viewclassresults(Request $request){
$term = $request->get('term');
if ($term ==1) {
$termended = "First";
}
$session = $request->get('session');
$sessionnow = Session::where('id', $session)->first()->name;
$classname = $request->classname;
$class_id = $request->class_id;
$teachersignature = Stclass::where('id', $class_id)->first()->teachersignature;
$teachername = Stclass::find($class_id)->teachers()->first()->fullName;
$setting = Setting::all()->first();
$grades = DB::table('grades')->get();
$comments = Comment::all();
$results = DB::table('results')
->where('studentClass', $class_id)->where('session', $session)->where('term', $term)->whereNull('deleted_at')
->selectRaw('results.*, (results.test1 + results.test2)/2 as cav, (results.exam + (results.test1 + results.test2)/2)/2 as totalmark, results.studentId as classstudents')->get();
$rating = DB::table('ratings')->where('term', $term)->where('session', $session)->first();
if($results->isEmpty()){
return "No Result";
//
} else{
return view('teacher.results.viewclassresults', compact('subjects', 'studentname', 'regNumber', 'studentClass', 'studentId', 'term', 'session', 'results', 'student', 'setting', 'sessionnow', 'classname', 'termended', 'grades', 'comments', 'rating', 'teachername', 'resultpercent', 'resultpercentclass', 'teachersignature', 'classstudents'));
//
}
}
真正显示个人结果的是$results。请注意,resultid(id)是结果表中唯一的主键。下面是我表格的一部分:
我的结果表
1条答案
按热度按时间oewdyzsn1#
我正在使用强制加载。
我看到你有很多结果。你可以在你的学生模型上添加一个方法,然后加载不同类型的结果。我不知道你们是什么关系,但基本上你们只是在上面保持联系。
不需要控制器中的条件语句。您可以在视图中执行所有这些操作,并删除不同的部分。
这个景色看起来很像这样
此代码未经测试。希望有帮助。