src/Controller/RoomController.php line 23
<?phpnamespace App\Controller;use App\Entity\Room;use App\Form\ActiveTenantType;use App\Form\RoomType;use App\Repository\RoomRepository;use Doctrine\Persistence\ManagerRegistry;use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;use Symfony\Component\HttpFoundation\Request;use Symfony\Component\HttpFoundation\Response;use Symfony\Component\Routing\Annotation\Route;class RoomController extends AbstractController{public function __construct(private ManagerRegistry $managerRegistry,) {}#[Route('/room', name: 'room', methods: ['GET'])]public function index(): Response{/** @var RoomRepository $roomRepository */$roomRepository = $this->managerRegistry->getRepository(Room::class);$rooms = $roomRepository->findAll();$room = new Room();$form = $this->createForm(RoomType::class, $room);return $this->render('room/index.html.twig', ['rooms' => $rooms,'room_form' => $form->createView(),]);}#[Route('/room', name: 'room_add', methods: ['POST'])]public function add(Request $request): Response{$form = $this->createForm(RoomType::class);$form->handleRequest($request);if ($form->isSubmitted() && $form->isValid()) {$data = $form->getData();$em = $this->managerRegistry->getManager();$em->persist($data);$em->flush();$this->addFlash('success','Zimmer erstellt!');return $this->redirectToRoute('room');}$this->addFlash('warning','Etwas ist schief gelaufen!');return $this->redirectToRoute('room');}#[Route('/room/{room}', name: 'room_view', methods: ['GET'])]public function view(Room $room): Response{$form = $this->createForm(RoomType::class, $room);/** @var RoomRepository $roomRepository */$roomRepository = $this->managerRegistry->getRepository(Room::class);$room = $roomRepository->findAll();return $this->render('room/view.html.twig', ['room_form' => $form->createView(),]);}#[Route('/room/{room}', name: 'room_patch', methods: ['POST'])]public function patch(Room $room, Request $request): Response{$form = $this->createForm(RoomType::class, $room);$form->handleRequest($request);if ($form->isSubmitted() && $form->isValid()) {$em = $this->managerRegistry->getManager();$data = $form->getData();$em->persist($data);$em->flush();$this->addFlash('success','Änderungen gespeichert!');return $this->redirectToRoute('room');}$this->addFlash('warning','Etwas ist schief gelaufen!');return $this->redirectToRoute('room');}#[Route('/room/{room}/add-tenant', name: 'room_add_tenant', methods: ['POST'])]public function addActiveTenant(Request $request): Response{$form = $this->createForm(ActiveTenantType::class);$form->handleRequest($request);if ($form->isSubmitted() && $form->isValid()) {$data = $form->getData();$em = $this->managerRegistry->getManager();$em->persist($data);$em->flush();$this->addFlash('success','Mieter zu Zimmer hinzugefügt!');return $this->redirectToRoute('room');}$this->addFlash('warning','Etwas ist schief gelaufen!');return $this->redirectToRoute('room');}#[Route('/room/{room}/delete', name: 'room_delete', methods: ['GET'])]public function delete(Room $room): Response{$em = $this->managerRegistry->getManager();$em->remove($room);$em->flush();$this->addFlash('success','Zimmer gelöscht!');return $this->redirectToRoute('room');}}