public function priorexam(Request $request) { $statistics = ExamResult::whereHas('Exam', function ($q) { $q->whereRaw('exams.start_at > exam_results.enter_at'); })->with('student', 'exam'); if (request('student_id')) { $statistics->whereHas('student', function ($q) use($request) { $q->where('students.id', request('student_id')); }); } if (request('exam_subject')) { $statistics->whereHas('exam', function ($q) use($request) { $q->where('subject_id', request('exam_subject')); }); } if (request('exam_type')) { $statistics->whereHas('exam', function ($q) use($request) { $q->where('type', request('exam_type')); }); } $per_page = request('per_page') ? request('per_page') : 100; $statistics = $statistics->paginate($per_page); $statistics->appends($request->except("page")); $subjects = Subject::lists('name', 'id')->toArray(); return view('exams::reports.priorexam', compact('statistics', 'subjects')); }