コード例 #1
0
 public function exportScores($id)
 {
     //check if current user has created the quiz
     $user_id = Auth::user()->id;
     $quiz_schedule = QuizSchedule::find($id);
     $quiz = Quiz::find($quiz_schedule->quiz_id);
     $class = DB::table('classes')->where('id', '=', $quiz_schedule->class_id)->first();
     if ($quiz_schedule->user_id != $user_id) {
         return Redirect::to('/scores/' . $id)->with('message', array('type' => 'danger', 'text' => 'You do not have the permission to export scores for this quiz.'));
     }
     $filename = "{$class->name}-{$quiz->title}-{$quiz_schedule->datetime_from}";
     Excel::create($filename, function ($excel) use($id, $quiz_schedule) {
         $excel->sheet('score-sheet', function ($sheet) use($id, $quiz_schedule) {
             $scores = DB::table('student_quizzes')->where('quiz_schedule_id', '=', $id)->lists('score', 'student_id');
             $students = DB::table('students')->join('student_classes', 'students.id', '=', 'student_classes.student_id')->select('students.id', 'last_name', 'first_name', 'middle_initial')->where('student_classes.class_id', '=', $quiz_schedule->class_id)->orderBy('gender', 'DESC')->orderBy('last_name', 'ASC')->get();
             $student_scores = array(array('ID Number', 'Student Name', 'Score'));
             foreach ($students as $student) {
                 $score = '';
                 if (isset($scores[$student->id])) {
                     $score = $scores[$student->id];
                 }
                 $student_scores[] = array('id' => $student->id, 'name' => "{$student->last_name}, {$student->first_name} {$student->middle_initial}", 'score' => $score);
             }
             $sheet->fromArray($student_scores, null, 'A1', false, false);
         });
     })->export('xls');
 }