src/Controller/ItemCategoryController.php line 47

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\ItemCategory;
  4. use App\Entity\ItemSpecCategory;
  5. use App\Form\ItemCategorySortType;
  6. use App\Form\ItemCategoryTitleSortType;
  7. use App\Form\ItemCategoryType;
  8. use App\Repository\ItemCategoryRepository;
  9. use Doctrine\ORM\EntityManagerInterface;
  10. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  11. use Symfony\Component\HttpFoundation\Request;
  12. use Symfony\Component\HttpFoundation\Response;
  13. use Symfony\Component\Routing\Annotation\Route;
  14. #[Route('/item/category')]
  15. class ItemCategoryController extends AbstractController
  16. {
  17.     #[Route('/'name'app_item_category_index'methods: ['GET'])]
  18.     public function index(): Response
  19.     {
  20.         return $this->redirectToRoute('app_category');
  21.     }
  22.     #[Route('/new'name'app_item_category_new'methods: ['GET''POST'])]
  23.     public function new(Request $requestEntityManagerInterface $entityManager): Response
  24.     {
  25.         $itemCategory = new ItemCategory();
  26.         $form $this->createForm(ItemCategoryType::class, $itemCategory);
  27.         $form->handleRequest($request);
  28.         if ($form->isSubmitted() && $form->isValid()) {
  29.             $entityManager->persist($itemCategory);
  30.             $entityManager->flush();
  31.             return $this->redirectToRoute('app_item_category_edit', ['id' => $itemCategory->getId()], Response::HTTP_SEE_OTHER);
  32.         }
  33.         return $this->renderForm('item_category/new.html.twig', [
  34.             'item_category' => $itemCategory,
  35.             'form' => $form,
  36.         ]);
  37.     }
  38.     #[Route('/{id}/edit'name'app_item_category_edit'methods: ['GET''POST'])]
  39.     public function edit(Request $requestItemCategory $itemCategoryEntityManagerInterface $entityManager): Response
  40.     {
  41.         $form $this->createForm(ItemCategoryType::class, $itemCategory);
  42.         $form->handleRequest($request);
  43.         if ($form->isSubmitted() && $form->isValid()) {
  44.             dump($form->getViewData());
  45.             $entityManager->persist($itemCategory);
  46.             $entityManager->flush();
  47.             return $this->redirectToRoute('app_item_category_edit', ['id' => $itemCategory->getId()], Response::HTTP_SEE_OTHER);
  48.         }
  49.         return $this->renderForm('item_category/edit.html.twig', [
  50.             'item_category' => $itemCategory,
  51.             'form' => $form,
  52.         ]);
  53.     }
  54.     #[Route('/{id}'name'app_item_category_delete'methods: ['POST'])]
  55.     public function delete(Request $requestItemCategory $itemCategoryEntityManagerInterface $entityManager): Response
  56.     {
  57.         if ($this->isCsrfTokenValid('delete'.$itemCategory->getId(), $request->request->get('_token'))) {
  58.             $entityManager->remove($itemCategory);
  59.             $entityManager->flush();
  60.         }
  61.         return $this->redirectToRoute('app_item_category_index', [], Response::HTTP_SEE_OTHER);
  62.     }
  63.     #[Route('/{id}/sort/{category}'name'app_item_category_edit_sort'methods: ['GET''POST'])]
  64.     public function sorting($categoryRequest $requestItemCategory $itemCategoryEntityManagerInterface $entityManager): Response
  65.     {
  66.         $itemSpecCategory $entityManager->getRepository(ItemSpecCategory::class)->find($category);
  67.         $form $this->createForm(ItemCategorySortType::class, $itemSpecCategory);
  68.         $form->handleRequest($request);
  69.         if ($form->isSubmitted() && $form->isValid()) {
  70.             $sortArray json_decode($form->get('sort')->getViewData(), true);
  71.             $itemSpecCategory->setSort($sortArray);
  72.             $entityManager->persist($itemSpecCategory);
  73.             $entityManager->flush();
  74.             return $this->redirectToRoute('app_item_category_edit', ['id' => $itemCategory->getId()], Response::HTTP_SEE_OTHER);
  75.         }
  76.         return $this->renderForm('item_category/sort.html.twig', [
  77.             'item_category' => $itemCategory,
  78.             'spec' => $itemSpecCategory,
  79.             'form' => $form
  80.         ]);
  81.     }
  82.     #[Route('/{id}/sort-title'name'app_item_category_edit_sort_title'methods: ['GET''POST'])]
  83.     public function sortingTitle($idRequest $requestEntityManagerInterface $entityManager): Response
  84.     {
  85.         $itemCategory $entityManager->getRepository(ItemCategory::class)->findOneBy(['id' => $id]);
  86.         $form $this->createForm(ItemCategoryTitleSortType::class, $itemCategory);
  87.         $form->handleRequest($request);
  88.         if ($form->isSubmitted() && $form->isValid()) {
  89.             $sortArray json_decode($form->get('sortTitle')->getViewData(), true);
  90.             $itemCategory->setSortTitle($sortArray);
  91.             $entityManager->persist($itemCategory);
  92.             $entityManager->flush();
  93.             return $this->redirectToRoute('app_item_category_edit', ['id' => $itemCategory->getId()], Response::HTTP_SEE_OTHER);
  94.         }
  95.         return $this->renderForm('item_category/sortTitle.html.twig', [
  96.             'item_category' => $itemCategory,
  97.             'form' => $form
  98.         ]);
  99.     }
  100. }