src/Controller/PlainteController.php line 31

  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Plainte;
  4. use App\Form\PlainteType;
  5. use Doctrine\ORM\EntityManagerInterface;
  6. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  7. use Symfony\Component\HttpFoundation\Request;
  8. use Symfony\Component\HttpFoundation\Response;
  9. use Symfony\Component\Routing\Annotation\Route;
  10. use DateTimeImmutable;
  11. #[Route('/plainte')]
  12. class PlainteController extends AbstractController
  13. {
  14.     #[Route('/liste_plainte'name'app_plainte_index'methods: ['GET'])]
  15.     public function index(EntityManagerInterface $entityManager): Response
  16.     {
  17.         $plaintes $entityManager
  18.             ->getRepository(Plainte::class)
  19.             ->findAll();
  20.         return $this->render('plainte/index.html.twig', [
  21.             'plaintes' => $plaintes,
  22.         ]);
  23.     }
  24.     #[Route('/new'name'app_plainte_new'methods: ['GET''POST'])]
  25.     public function new(Request $requestEntityManagerInterface $entityManager): Response
  26.     {
  27.         $plainte = new Plainte();
  28.         $form $this->createForm(PlainteType::class, $plainte);
  29.         $form->handleRequest($request);
  30.         if ($form->isSubmitted() && $form->isValid()) {
  31.             $motif $request->request->get("motif");
  32.             $plainte->setMotif($motif)
  33.                 ->setCreatedAt(new \DateTimeImmutable('now'))
  34.                 ->setStatut(0);
  35.             $entityManager->persist($plainte);
  36.             $entityManager->flush();
  37.  
  38.             $this->addFlash('success''Votre réclamation/suggestion a été envoyée avec succès.');
  39.             return $this->redirectToRoute('app_home', [], Response::HTTP_SEE_OTHER);
  40.         }
  41.         return $this->renderForm('plainte/new.html.twig', [
  42.             'plainte' => $plainte,
  43.             'form' => $form,
  44.         ]);
  45.     }
  46. }