src/Controller/FlatController.php line 22

  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Flat;
  4. use App\Form\FlatType;
  5. use App\Repository\FlatRepository;
  6. use Doctrine\Persistence\ManagerRegistry;
  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 FlatController extends AbstractController
  12. {
  13.     public function __construct(
  14.         private ManagerRegistry $managerRegistry,
  15.     ) {
  16.     }
  17.     #[Route('/flat'name'flat'methods: ['GET'])]
  18.     public function index(): Response
  19.     {
  20.         /** @var FlatRepository $flatRepository */
  21.         $flatRepository $this->managerRegistry->getRepository(Flat::class);
  22.         $flats $flatRepository->findAll();
  23.         $flat = new Flat();
  24.         $form $this->createForm(FlatType::class, $flat);
  25.         return $this->render('flat/index.html.twig', [
  26.             'flats' => $flats,
  27.             'flat_form' => $form->createView(),
  28.         ]);
  29.     }
  30.     #[Route('/flat'name'flat_add'methods: ['POST'])]
  31.     public function add(Request $request): Response
  32.     {
  33.         $form $this->createForm(FlatType::class);
  34.         $form->handleRequest($request);
  35.         if ($form->isSubmitted() && $form->isValid()) {
  36.             $data $form->getData();
  37.             $em $this->managerRegistry->getManager();
  38.             $em->persist($data);
  39.             $em->flush();
  40.             $this->addFlash(
  41.                 'success',
  42.                 'Wohnung erstellt!'
  43.             );
  44.             return $this->redirectToRoute('flat');
  45.         }
  46.         $this->addFlash(
  47.             'warning',
  48.             'Etwas ist schief gelaufen!'
  49.         );
  50.         return $this->redirectToRoute('flat');
  51.     }
  52.     #[Route('/flat/{flat}/delete'name'flat_delete'methods: ['GET'])]
  53.     public function delete(Flat $flat): Response
  54.     {
  55.         $em $this->managerRegistry->getManager();
  56.         $em->remove($flat);
  57.         $em->flush();
  58.         $this->addFlash(
  59.             'success',
  60.             'Wohnung gelöscht!'
  61.         );
  62.         return $this->redirectToRoute('flat');
  63.     }
  64. }