src/Controller/PromoCodeController.php line 17

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\PromoCode;
  4. use App\Form\PromoCodeType;
  5. use App\Repository\PromoCodeRepository;
  6. use Doctrine\ORM\EntityManagerInterface;
  7. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  8. use Symfony\Component\HttpFoundation\Request;
  9. use Symfony\Component\HttpFoundation\Response;
  10. use Symfony\Component\Routing\Annotation\Route;
  11. class PromoCodeController extends AbstractController
  12. {
  13.     #[Route('/promo/code'name'app_promo_code')]
  14.     public function index(PromoCodeRepository  $promoCodeRepository): Response
  15.     {
  16.         return $this->render('promo_code/index.html.twig', [
  17.             'codes' => $promoCodeRepository->findAll(),
  18.         ]);
  19.     }
  20.     #[Route('/promocode/new'name'promocode_new')]
  21.     public function new(Request $requestEntityManagerInterface $entityManager): Response
  22.     {
  23.         $promoCode = new PromoCode();
  24.         $form $this->createForm(PromoCodeType::class, $promoCode);
  25.         $form->handleRequest($request);
  26.         if ($form->isSubmitted() && $form->isValid()) {
  27.             $dateDebut $form->get('dateDebut')->getData();
  28.             $dateFin $form->get('dateFin')->getData();
  29.             if ($dateDebut) {
  30.                 $promoCode->setDateDebut(\DateTime::createFromFormat('d-m-Y'$dateDebut));
  31.             }
  32.             if ($dateFin) {
  33.                 $promoCode->setDateFin(\DateTime::createFromFormat('d-m-Y'$dateFin));
  34.             }
  35.             $entityManager->persist($promoCode);
  36.             $entityManager->flush();
  37.             return $this->redirectToRoute('app_promo_code');
  38.         }
  39.         return $this->render('promo_code/new.html.twig', [
  40.             'form' => $form->createView(),
  41.         ]);
  42.     }
  43.     #[Route('/promocode/{id}/edit'name'promocode_edit')]
  44.     public function edit(Request $requestPromoCode $promoCodeEntityManagerInterface $entityManager): Response
  45.     {
  46.         $form $this->createForm(PromoCodeType::class, $promoCode);
  47.         $form->handleRequest($request);
  48.         if ($form->isSubmitted() && $form->isValid()) {
  49.             $entityManager->flush();
  50.             return $this->redirectToRoute('app_promo_code');
  51.         }
  52.         return $this->render('promo_code/edit.html.twig', [
  53.             'promoCode' => $promoCode,
  54.             'form' => $form->createView(),
  55.         ]);
  56.     }
  57.     #[Route('/promocode/{id}/delete'name'promocode_delete'methods: ['POST'])]
  58.     public function delete(Request $requestPromoCode $promoCodeEntityManagerInterface $entityManager): Response
  59.     {
  60.         if ($this->isCsrfTokenValid('delete' $promoCode->getId(), $request->request->get('_token'))) {
  61.             $entityManager->remove($promoCode);
  62.             $entityManager->flush();
  63.         }
  64.         return $this->redirectToRoute('app_promo_code');
  65.     }
  66. }