예제 #1
0
 /**
  * Update the specified quiz in database
  *
  * @param  Request $request
  * @param Quiz $quiz
  * @return Response
  * @internal param int $id
  */
 public function update(Request $request, Quiz $quiz)
 {
     $quiz->update(['subject' => $request->get('subject')]);
     foreach ($quiz->questions as $question) {
         $q = $request->get('existingquestions')[$question->id];
         $question->text = $q['text'];
         $question->save();
         foreach ($question->answers as $answer) {
             $answer->text = $q['answers'][$answer->id];
             $answer->correct = $q['correct_answer'] == $answer->id;
             $answer->save();
         }
     }
     foreach ($request->get('questions') as $q) {
         $question = $quiz->questions()->create(['text' => $q['text']]);
         $answers = $q['answers'];
         if (!array_key_exists('correct_answer', $q)) {
             $q['correct_answer'] = 0;
         }
         foreach (range(0, 3) as $i) {
             $question->answers()->create(['text' => $answers[$i], 'correct' => $i == $q['correct_answer'], 'question_id' => $question->id]);
         }
     }
     return redirect()->back();
 }
 /**
  * Update the specified resource in storage.
  *
  * @param  \Illuminate\Http\Request $request
  * @param  Quiz $quiz
  * @return \Illuminate\Http\Response
  */
 public function update(Request $request, Quiz $quiz)
 {
     $questions = $request->input('question');
     $answers = $request->input('answer');
     $correct = $request->input('correct');
     $quiz->update(['name' => $request->input('name'), 'active' => $request->input('active'), 'total' => count($questions)]);
     foreach ($quiz->questions as $i => $question) {
         $question->update(['question' => $questions[$i]]);
         foreach ($question->answers as $j => $answer) {
             $j == $correct[$i] ? $answer->update(['answer' => $answers[$i][$j], 'correct' => true]) : $answer->update(['answer' => $answers[$i][$j], 'correct' => false]);
         }
     }
     return redirect()->action('QuizzesController@index');
 }