<?php declare(strict_types=1); namespace App\Controller; use App\Entity\MenuItem; use App\Form\MenuItemType; use Doctrine\ORM\EntityManagerInterface; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; #[Route('/menu/item')] final class MenuItemController extends AbstractController { #[Route('/{id}', name: 'app_menu_item_show', methods: ['GET'])] public function show(MenuItem $menuItem): Response { return $this->render('menu_item/show.html.twig', [ 'menu_item' => $menuItem, ]); } #[Route('/{id}/edit', name: 'app_menu_item_edit', methods: ['GET', 'POST'])] public function edit(Request $request, MenuItem $menuItem, EntityManagerInterface $entityManager): Response { $form = $this->createForm(MenuItemType::class, $menuItem); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { $entityManager->flush(); return $this->redirectToRoute('app_menu_item_index', [], Response::HTTP_SEE_OTHER); } return $this->render('menu_item/edit.html.twig', [ 'menu_item' => $menuItem, 'form' => $form, ]); } #[Route('/{id}', name: 'app_menu_item_delete', methods: ['POST'])] public function delete(Request $request, MenuItem $menuItem, EntityManagerInterface $entityManager): Response { if ($this->isCsrfTokenValid('delete' . $menuItem->getId(), $request->getPayload()->getString('_token'))) { $menuItem->delete(); $entityManager->persist($menuItem); $entityManager->flush(); } return $this->redirectToRoute('app_food_vendor_show', [ 'id' => $menuItem->getFoodVendor() ->getId(), ], Response::HTTP_SEE_OTHER); } }