src/Controller/Back/CategoryController.php line 38

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Back;
  3. use App\Entity\Category;
  4. use App\Form\CategoryType;
  5. use App\Repository\CategoryRepository;
  6. use Doctrine\ORM\EntityManagerInterface;
  7. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  8. use Symfony\Component\HttpFoundation\Request;
  9. use Symfony\Component\Routing\Annotation\Route;
  10. use Symfony\Component\String\Slugger\SluggerInterface;
  11. /**
  12.  * @Route("/admin")
  13.  */
  14. class CategoryController extends AbstractController
  15. {
  16.     /**
  17.      * @var EntityManagerInterface
  18.      */
  19.     private EntityManagerInterface $em;
  20.     /**
  21.      * @var SluggerInterface
  22.      */
  23.     private SluggerInterface $slugger;
  24.     public function __construct(EntityManagerInterface $emSluggerInterface $slugger)
  25.     {
  26.         $this->em $em;
  27.         $this->slugger $slugger;
  28.     }
  29.     /**
  30.      * @Route("/category/list", name="back_category_list")
  31.      */
  32.     public function list(CategoryRepository $categoryRepository)
  33.     {
  34.         return $this->render('back/category/list.html.twig', [
  35.             'categories' => $categoryRepository->findBy([], ['id' => 'DESC'])
  36.         ]);
  37.     }
  38.     /**
  39.      * @Route("/category/add", name="back_category_add")
  40.      */
  41.     public function add(Request $request)
  42.     {
  43.         $category = new Category();
  44.         $form $this->createForm(CategoryType::class, $category)->handleRequest($request);
  45.         if ($form->isSubmitted() && $form->isValid()) {
  46.             $sluggedName $this->slugger->slug($category->getName())->lower();
  47.             $category->setSlug($sluggedName);
  48.             $this->em->persist($category);
  49.             $this->em->flush();
  50.             $this->addFlash('success''Catégorie créée');
  51.             return $this->redirectToRoute('back_category_list');
  52.         }
  53.         return $this->render('back/category/add.html.twig', [
  54.             'form' => $form->createView()
  55.         ]);
  56.     }
  57.     /**
  58.      * @Route("/category/edit/{id}", name="back_category_edit")
  59.      */
  60.     public function edit(Category $categoryRequest $request)
  61.     {
  62.         $form $this->createForm(CategoryType::class, $category)->handleRequest($request);
  63.         if ($form->isSubmitted() && $form->isValid()) {
  64.             $sluggedName $this->slugger->slug($category->getName())->lower();
  65.             $category->setSlug($sluggedName);
  66.             $this->em->flush();
  67.             $this->addFlash('success''Catégorie éditée');
  68.             return $this->redirectToRoute('back_category_list');
  69.         }
  70.         return $this->render('back/category/edit.html.twig', [
  71.             'form' => $form->createView()
  72.         ]);
  73.     }
  74.     /**
  75.      * @Route("/category/remove/{id}", name="back_category_remove")
  76.      */
  77.     public function remove(Category $category)
  78.     {
  79.         $this->em->remove($category);
  80.         $this->em->flush();
  81.         $this->addFlash('success''Catégorie supprimée');
  82.         return $this->redirectToRoute('back_category_list');
  83.     }
  84. }