src/Controller/ForumController.php line 31

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Answer;
  4. use App\Entity\Questions;
  5. use App\Form\AnswerType;
  6. use App\Form\QuestionsType;
  7. use App\Repository\AnswerRepository;
  8. use App\Repository\QuestionsRepository;
  9. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  10. use Symfony\Component\HttpFoundation\Request;
  11. use Symfony\Component\HttpFoundation\Response;
  12. use Symfony\Component\Routing\Annotation\Route;
  13. /**
  14.  * @Route("/forum")
  15.  */
  16. class ForumController extends AbstractController
  17. {
  18.     private $questions;
  19.     public function __construct(QuestionsRepository $questions)
  20.     {
  21.         $this->questions $questions;
  22.     }
  23.     /**
  24.      * @Route("/", name="app_accueil_forum_index")
  25.      */
  26.     public function index(){
  27.         $allQuestions $this->questions->findBy(
  28.             [],
  29.             ['createdAt' => 'DESC']
  30.         );
  31.         return $this->render('accueil/forum_index.html.twig',[
  32.             'questions'=>$allQuestions
  33.         ]);
  34.     }
  35.     /**
  36.      * @Route("/{id}", name="app_accueil_forum_question")
  37.      */
  38.     public function question(Questions $questions){
  39.         $reponse = new  Answer();
  40.         $reponse->setQstn($questions);
  41.         $form $this->createForm(AnswerType::class,$reponse);
  42.         return $this->render('accueil/forum_question.html.twig',[
  43.             'question'=>$questions,
  44.             'form'=>$form->createView()
  45.         ]);
  46.     }
  47.     /**
  48.      * @Route("/question/repondre/{id}", name="app_accueil_forum_answer")
  49.      */
  50.     public function  repondre (Request $request,Questions $questions,AnswerRepository $answerRepository) {
  51.         $reponse = new  Answer();
  52.         $reponse->setQstn($questions);
  53.         $reponse->setUser($this->getUser());
  54.         $form $this->createForm(AnswerType::class,$reponse);
  55.         $form->handleRequest($request);
  56.         if ($form->isSubmitted() && $form->isValid()) {
  57.             $answerRepository->add($reponse);
  58.             return $this->redirectToRoute('app_accueil_forum_question', ['id'=>$reponse->getQstn()->getId()], Response::HTTP_SEE_OTHER);
  59.         }
  60.     }
  61.     /**
  62.      * @Route("/question/nouvelle", name="app_accueil_forum_new_question")
  63.      */
  64.     public function  nouvelleQuestion (Request $request,QuestionsRepository  $questionsRepository) {
  65.         $question = new  Questions();
  66.         $question->setUser($this->getUser());
  67.         $form $this->createForm(QuestionsType::class,$question);
  68.         $form->handleRequest($request);
  69.         if ($form->isSubmitted() && $form->isValid()) {
  70.             $questionsRepository->add($question);
  71.             return $this->redirectToRoute('app_accueil_forum_index');
  72.         }
  73.         return $this->render('accueil/forum_index_new_question.html.twig',[
  74.             'form'=> $form->createView()
  75.         ]);
  76.     }
  77. }