/** * @Route("/teacher/quiz/question/{question}", name="editQuestion") */ public function editQuestionAction(Request $request, $question) { $em = $this->getDoctrine()->getManager(); $question = $em->getRepository('AppBundle:Question')->find($question); $answers = $em->getRepository('AppBundle:Answer')->createQueryBuilder('a'); $answers = $answers->where('a.question=' . $question->getId())->andWhere('a.enabled = 1')->getQuery()->getResult(); $quiz = $question->getQuiz(); $questions = $em->getRepository('AppBundle:Question')->findByQuiz($quiz); $image = $em->getRepository('AppBundle:QuestionImage')->findOneByQuestion($question); if ($image) { $image = $image->getWebPath(); } $correct = $em->getRepository('AppBundle:Answer')->createQueryBuilder('c'); $correct = $correct->where('c.points > 0')->andWhere('c.question=' . $question->getId())->andWhere('c.enabled = 1')->getQuery()->getResult(); $answer = new Answer(); $answer->setEnabled(1); $answer->setQuestion($question); $form = $this->get('form.factory')->createNamedBuilder('answer', FormType::class, $answer)->add('answer')->add('points')->add('save', SubmitType::class, array('label' => "Dodaj odpowiedź"))->getForm(); $form->handleRequest($request); // if($form->isValid()){ // if($answer->getPoints()>=1 && $correct){ // $this->addFlash('notice','W tym pytaniu istnieje już poprawna odpowiedź!'); // return $this->render('teacher/edit_question.html.twig', array( // 'question' => $question, // 'questions' => $questions, // 'quiz' => $quiz, // 'answers'=>$answers, // 'add_answer'=>$form->createView(), // 'add_question'=>$formq->createView(), // 'add_image'=>$formfile->createView(), // 'image'=>$image, // )); // } // $em->persist($answer); // $em->flush(); // $answers = $em->getRepository('AppBundle:Answer')->findByQuestion($question); // } $question_new = new Question(); $formq = $this->get('form.factory')->createNamedBuilder('question', FormType::class, $question_new)->add('question', TextareaType::class)->add('save', SubmitType::class, array('label' => 'Dodaj'))->getForm(); $formq->handleRequest($request); if ($formq->isValid()) { $question_new->setEnabled(1); $question_new->setQuiz($quiz); $em->persist($question_new); $em->flush(); return $this->redirectToRoute('editQuestion', array('question' => $question_new->getId())); } $file = new QuestionImage(); $formfile = $this->get('form.factory')->createNamedBuilder('image', FormType::class, $file)->add('file')->getForm(); $file->setQuestion($question); if ($request->request->has('image')) { $formfile->handleRequest($request); } if ($formfile->isValid()) { $file->upload(); $em->persist($file); $em->flush(); $this->addFlash('notice', 'Pomyślnie dodano obrazek do pytania.'); } if ($form->isValid()) { if ($answer->getPoints() >= 1 && $correct) { $this->addFlash('notice', 'W tym pytaniu istnieje już poprawna odpowiedź!'); return $this->render('teacher/edit_question.html.twig', array('question' => $question, 'questions' => $questions, 'quiz' => $quiz, 'answers' => $answers, 'add_answer' => $form->createView(), 'add_question' => $formq->createView(), 'add_image' => $formfile->createView(), 'image' => $image)); } $em->persist($answer); $em->flush(); $answers = $em->getRepository('AppBundle:Answer')->createQueryBuilder('a'); $answers = $answers->where('a.question=' . $question->getId())->andWhere('a.enabled = 1')->getQuery()->getResult(); } return $this->render('teacher/edit_question.html.twig', array('question' => $question, 'questions' => $questions, 'quiz' => $quiz, 'answers' => $answers, 'add_answer' => $form->createView(), 'add_question' => $formq->createView(), 'add_image' => $formfile->createView(), 'image' => $image)); }