Esempio n. 1
0
 /**
  * Remove the specified resource from storage.
  *
  * @param Quiz $quiz
  * @return Response
  * @throws \Exception
  * @internal param int $id
  */
 public function destroy(Quiz $quiz)
 {
     foreach ($quiz->tests as $test) {
         foreach ($test->results as $result) {
             $result->delete();
         }
         $test->delete();
     }
     foreach ($quiz->questions as $question) {
         $question->answers()->delete();
     }
     $quiz->questions()->delete();
     $quiz->delete();
     return redirect()->back();
 }
Esempio n. 2
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();
 }