src/Controller/CenterController.php line 72

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Center;
  4. use App\Entity\Address;
  5. use DateTimeImmutable;
  6. use App\Form\CenterType;
  7. use App\Repository\CenterRepository;
  8. use App\Repository\AddressRepository;
  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("/center")
  15.  */
  16. class CenterController extends AbstractController
  17. {
  18.     /**
  19.      * @Route("/", name="app_center_index", methods={"GET"})
  20.      */
  21.     public function index(CenterRepository $centerRepository): Response
  22.     {
  23.         return $this->render('center/index.html.twig', [
  24.             'centers' => $centerRepository->findAll(),
  25.         ]);
  26.     }
  27.     /**
  28.      * @Route("/new", name="app_center_new", methods={"GET", "POST"})
  29.      */
  30.     public function new(Request $requestCenterRepository $centerRepository AddressRepository $addressRepository): Response
  31.     {
  32.         $center = new Center();
  33.         $form $this->createForm(CenterType::class, $center);
  34.         $form->handleRequest($request);
  35.         if ($form->isSubmitted() && $form->isValid()) {
  36.                  //création de l'adresse
  37.             $address =new Address();
  38.             $address->setStreet($request->request->get('street'));
  39.             $address->setNumber($request->request->get('street_number'));
  40.                $address->setCountry($form->get('country')->getData());
  41.             $address->setPostcode($request->request->get('postcode'));
  42.             $address->setCreatedAt(new  DateTimeImmutable());
  43.             $address->setUpdatedAt(new  DateTimeImmutable());
  44.             $address->setActive(true);
  45.             $addressRepository->add($addresstrue);
  46.                 $center->setAddress($address);
  47.                 
  48.             $centerRepository->add($centertrue);
  49.             return $this->redirectToRoute('app_center_index', [], Response::HTTP_SEE_OTHER);
  50.         }
  51.         return $this->renderForm('center/new.html.twig', [
  52.             'center' => $center,
  53.             'form' => $form,
  54.         ]);
  55.     }
  56.     /**
  57.      * @Route("/{id}", name="app_center_show", methods={"GET"})
  58.      */
  59.     public function show(Center $center): Response
  60.     {
  61.         return $this->render('center/show.html.twig', [
  62.             'center' => $center,
  63.         ]);
  64.     }
  65.     /**
  66.      * @Route("/{id}/edit", name="app_center_edit", methods={"GET", "POST"})
  67.      */
  68.     public function edit(Request $requestCenter $centerCenterRepository $centerRepositoryAddressRepository $addressRepository): Response
  69.     {
  70.         $form $this->createForm(CenterType::class, $center);
  71.         $form->handleRequest($request);
  72.         if ($form->isSubmitted() && $form->isValid()) {
  73.                 $address=$center->getAddress();
  74.                 $address->setStreet($request->request->get('street'));
  75.             $address->setNumber($request->request->get('street_number'));
  76.                $address->setCountry($form->get('country')->getData());
  77.             $address->setPostcode($request->request->get('postcode'));
  78.             $address->setUpdatedAt(new  DateTimeImmutable());
  79.                 $addressRepository->add($address,true);
  80.             $centerRepository->add($centertrue);
  81.             return $this->redirectToRoute('app_center_index', [], Response::HTTP_SEE_OTHER);
  82.         }
  83.         return $this->renderForm('center/edit.html.twig', [
  84.             'center' => $center,
  85.             'form' => $form,
  86.         ]);
  87.     }
  88.     /**
  89.      * @Route("/{id}", name="app_center_delete", methods={"POST"})
  90.      */
  91.     public function delete(Request $requestCenter $centerCenterRepository $centerRepository): Response
  92.     {
  93.         if ($this->isCsrfTokenValid('delete'.$center->getId(), $request->request->get('_token'))) {
  94.             $centerRepository->remove($centertrue);
  95.         }
  96.         return $this->redirectToRoute('app_center_index', [], Response::HTTP_SEE_OTHER);
  97.     }
  98. }