public function viewProfile() { $user = Auth::User(); $views = Viewable::viewedResource($user->ID); $username = $user->user_login; $profilePic = userProfilePhoto::where('username', $username)->pluck('photoUrl'); $quiz_attempts = QuizAttempt::ownedAttempts($user->ID)->get(); if (Auth::user()->role == 'admin' || Auth::user()->role == 'teacher') { return View::make('profile.index')->with(array('user' => $user, 'views' => $views, 'quiz_attempts' => $quiz_attempts)); } else { return View::make('profile.index_student')->with(array('user' => $user, 'views' => $views, 'quiz_attempts' => $quiz_attempts, 'photoUrl' => $profilePic)); } }
public function submit_answer($resource_id, $quiz_id) { try { DB::beginTransaction(); $resource = Resource::find($resource_id); $quiz = $resource->quizzes()->find($quiz_id); $quiz_attempt_params = array("user_id" => Auth::user()->ID); $attempt_validator = QuizAttempt::validate($quiz_attempt_params); if ($attempt_validator->fails()) { throw new Exception("Your attempt can't be recorded"); } $quiz_attempt = new QuizAttempt($quiz_attempt_params); $quiz_attempt = $quiz->quiz_attempts()->save($quiz_attempt); foreach (Input::get("answers") as $key => $answer) { foreach ($answer['options'] as $option) { $option_params = array("option_id" => $option, 'question_id' => $answer['question_id']); $option_validator = QuizAttemptAnswer::validate($option_params); if ($option_validator->fails()) { throw new Exception("Your answers can't be saved"); } $answer = new QuizAttemptAnswer($option_params); $answer = $quiz_attempt->answers()->save($answer); } } DB::commit(); return Redirect::to("resources/" . $resource->id . '/quizzes/' . $quiz->id . '/show_answer/' . $quiz_attempt->id)->with("success", "You have successfully completed the quiz."); } catch (Exception $e) { DB::rollback(); } }