Example #1
0
 /**
  * Run the database seeds.
  *
  * @return void
  */
 public function run()
 {
     $faker = Factory::create('fr_FR');
     $subjectsCount = Subject::all()->count();
     for ($qcms = 0; $qcms < 100; $qcms++) {
         $qcm = Qcm::create(['user_id' => 1, 'subject_id' => rand(1, $subjectsCount - 1), 'name' => $faker->sentence(6), 'description' => $faker->sentence(40)]);
         for ($questions = 0; $questions < rand(5, 10); $questions++) {
             $question = Question::create(['qcm_id' => $qcm->id, 'question' => $faker->sentence(20)]);
             for ($answers = 0; $answers < rand(2, 4); $answers++) {
                 Answer::create(['question_id' => $question->id, 'answer' => $faker->sentence(10), 'isValid' => $answers == 0]);
             }
         }
     }
 }
 public function postCreate(Request $request)
 {
     $this->validate($request, ['name' => 'required|string', 'description' => 'required|string', 'subject_id' => 'required|in:' . implode(',', array_keys(Subject::toList())), 'questions' => 'required|array', 'valids_answers' => 'required|array|size_array:questions|answer_exists:answers', 'answers' => 'required|array']);
     $qcm = DB::transaction(function () use($request) {
         $datas = $request->all();
         // Création du QCM wow!!§
         $qcm = Qcm::create(['user_id' => Auth::id(), 'subject_id' => $datas['subject_id'], 'name' => $datas['name'], 'description' => $datas['description']]);
         foreach ($datas['questions'] as $q => $question) {
             // Création des questions associées au QCM !!§
             $question = Question::create(['qcm_id' => $qcm->id, 'question' => $question]);
             foreach ($datas['answers'][$q] as $a => $answer) {
                 // Création des réponses associées aux questions !§§
                 $answer = Answer::create(['question_id' => $question->id, 'answer' => $answer, 'isValid' => (int) $datas['valids_answers'][$q] === $a]);
             }
         }
         return $qcm;
     });
     if ($qcm != null) {
         Session::push('messages', 'success|Votre QCM a bien été créé');
         return redirect()->route('qcm::mine');
     } else {
         Session::push('messages', "danger|Le QCM n'a pas été créé");
         return redirect(URL::previous());
     }
 }