1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| #[Route('/{elementId}/ajouter-question/', '_ajouter_question')]
public function addQuestion($elementId, Request $request, EntityManagerInterface $em, QuizzesElementsRepository $quizzesElementsRepo): Response
{
$element = $quizzesElementsRepo->find($elementId);
$quizz = $element->getQuizz();
$formTitle = "Ajouter une question";
$question = new Questions();
$form = $this->createForm(QuestionsType::class, $question, [
'action' => $this->generateUrl(
'app_quizzes_questions_reponses_ajouter_question',
[
'elementId' => $element->getId(),
]
),
]);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$question->setQuizzElement($element);
$em->persist($question);
$em->flush();
if ($form->get('saveAndAdd')->isClicked()) {
$this->addFlash('success', "La nouvelle question a bien été enregistrée dans la base");
return $this->redirectToRoute('app_quizzes_questions_answers_ajouter_question', ['quizzId' => $quizz->getId(), 'elementId' => $elementId, 'message' => "La nouvelle question a bien été enregistrée dans la base"]);
}
if ($form->get('saveAndClose')->isClicked()) {
$this->addFlash('success', "La nouvelle question a bien été enregistrée dans la base");
return $this->redirectToRoute('app_quizzes_modifier', ['quizzId' => $quizz->getId()]);
}
//$this->addFlash('success', "La nouvelle question a bien été enregistrée dans la base.");
// return $this->redirectToRoute('app_quizzes_modifier', ['quizzId' => $quizz->getId()]);
}
if ($request->isXmlHttpRequest()) {
return new JsonResponse(['content' => $this->renderView('quizzes/questions-form.html.twig', ['form' => $form, 'formTitle' => $formTitle, 'quizzId' => $quizz->getId(), 'elementId' => $elementId])]);
} else {
return new JsonResponse("La requête n'a pu s'effectuer car elle n'est pas de type Ajax", 400);
}
} |
Partager