src/Controller/RoomController.php line 24

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Room;
  4. use App\Form\RoomType;
  5. use DateTimeImmutable;
  6. use App\Repository\RoomRepository;
  7. use App\Repository\CenterRepository;
  8. use Symfony\Component\HttpFoundation\Request;
  9. use Symfony\Component\HttpFoundation\Response;
  10. use Symfony\Component\Routing\Annotation\Route;
  11. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  12. /**
  13.  * @Route("/room")
  14.  */
  15. class RoomController extends AbstractController
  16. {
  17.     /**
  18.      * @Route("/", name="app_room_index", methods={"GET"})
  19.      */
  20.     public function index(RoomRepository $roomRepository): Response
  21.     {
  22.         return $this->render('room/index.html.twig', [
  23.             'rooms' => $roomRepository->findAll(),
  24.         ]);
  25.     }
  26.     /**
  27.      * @Route("/new", name="app_room_new", methods={"GET", "POST"})
  28.      */
  29.     public function new(Request $requestRoomRepository $roomRepository CenterRepository $centerRepository): Response
  30.     {
  31.         $room = new Room();
  32.         $form $this->createForm(RoomType::class, $room);
  33.         $form->handleRequest($request);
  34.         if ($form->isSubmitted() && $form->isValid()) {
  35.             
  36.             $room->setCreatedAt(new DateTimeImmutable());
  37.             $room->setUpdateAt(new DateTimeImmutable());
  38.             //pour le moment le centre par défaut est celui du maroc
  39.             $center $centerRepository->find('1');
  40.             $room->setCenter($center);
  41.             //récupératuion des photos de la chambre
  42.             $room->setPrincipalImage($request->request->get('principal_image'));
  43.             
  44.             $room->setImages($request->request->get('images'));
  45.             $roomRepository->add($roomtrue);
  46.             return $this->redirectToRoute('app_room_index', [], Response::HTTP_SEE_OTHER);
  47.         }
  48.         return $this->renderForm('room/new.html.twig', [
  49.             'room' => $room,
  50.             'form' => $form,
  51.         ]);
  52.     }
  53.     /**
  54.      * @Route("/{id}", name="app_room_show", methods={"GET"})
  55.      */
  56.     public function show(Room $room): Response
  57.     {
  58.         return $this->render('room/show.html.twig', [
  59.             'room' => $room,
  60.         ]);
  61.     }
  62.     /**
  63.      * @Route("/{id}/edit", name="app_room_edit", methods={"GET", "POST"})
  64.      */
  65.     public function edit(Request $requestRoom $roomRoomRepository $roomRepository): Response
  66.     {
  67.         $form $this->createForm(RoomType::class, $room);
  68.         $form->handleRequest($request);
  69.         if ($form->isSubmitted() && $form->isValid()) {
  70.             $room->setUpdateAt(new DateTimeImmutable());
  71.             $roomRepository->add($roomtrue);
  72.             return $this->redirectToRoute('app_room_index', [], Response::HTTP_SEE_OTHER);
  73.         }
  74.         return $this->renderForm('room/edit.html.twig', [
  75.             'room' => $room,
  76.             'form' => $form,
  77.         ]);
  78.     }
  79.     /**
  80.      * @Route("/{id}", name="app_room_delete", methods={"POST"})
  81.      */
  82.     public function delete(Request $requestRoom $roomRoomRepository $roomRepository): Response
  83.     {
  84.         if ($this->isCsrfTokenValid('delete'.$room->getId(), $request->request->get('_token'))) {
  85.             $roomRepository->remove($roomtrue);
  86.         }
  87.         return $this->redirectToRoute('app_room_index', [], Response::HTTP_SEE_OTHER);
  88.     }
  89. }