/** * Permet de dupliquer un quizz * * @param $id * @return \Illuminate\Http\RedirectResponse */ public function duplicate($id) { $quizz = Quizz::id($id); // Vérification que le slug n'existe pas déjà $slugExist = Quizz::slugExist($quizz->slug); /** * Si le slug existe déjà on rajoute un suffixe pour ne pas avoir de doublon */ if ($slugExist->count() != 0) { $nb = $slugExist->count() + 1; $quizzFolderSlug = $quizz->folder . '-' . $nb; } else { $quizzFolderSlug = $quizz->slug; } // Chemin de création du fichier $quizzFolderPath = public_path() . '/image/quizz/' . $quizzFolderSlug . '/'; $quizzFolderPath = str_replace('\\', '/', $quizzFolderPath); // Création du dossier du quizz File::makeDirectory($quizzFolderPath); Quizz::create(['title' => $quizz->title, 'theme' => $quizz->theme, 'folder' => $quizzFolderSlug, 'picture' => $quizz->picture, 'date_begin' => Carbon::now()->toDateString(), 'date_end' => Carbon::now()->toDateString(), 'chrono' => $quizz->chrono, 'status' => 3, 'prize' => $quizz->prize, 'prize_image' => $quizz->prize_image]); // Récupération des questions du quizz courrant pour les copiers dans le nouveaux quizz $question = Question::liste($id); // Récupération des informations du nouveau quizz $newQuizz = Quizz::slug($quizzFolderSlug); foreach ($question as $element) { Question::create(['id_quizz' => $newQuizz->id, 'title' => $element->title, 'choice' => $element->choice, 'picture' => $element->picture, 'description' => $element->description, 'delete' => 0]); } return redirect(route('admin.home'))->with('success', 'Le quizz a bien été dupliqué'); }