src/Controller/Dashboard/Admin/CategoryController.php line 141

Open in your IDE?
  1. <?php
  2. /*
  3.  * This file is part of the Symfony package.
  4.  *
  5.  * (c) Fabien Potencier <fabien@symfony.com>
  6.  *
  7.  * For the full copyright and license information, please view the LICENSE
  8.  * file that was distributed with this source code.
  9.  */
  10. namespace App\Controller\Dashboard\Admin;
  11. use App\Entity\Category;
  12. use App\Entity\Subcategory;
  13. use Doctrine\Persistence\ManagerRegistry;
  14. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  15. use Symfony\Component\HttpFoundation\Request;
  16. use Symfony\Component\Routing\Annotation\Route;
  17. /**
  18.  * Controller used to manage current user.
  19.  *
  20.  * @author Romain Monteil <monteil.romain@gmail.com>
  21.  */
  22. #[Route('/admin/category')]
  23. class CategoryController extends AbstractController {
  24.     #[Route('/categories-list'methods: ['GET'], name'list_categories')]
  25.     public function listCategories(Request $requestManagerRegistry $doctrine) {
  26.         $em $doctrine->getManager();
  27.         $categories $em->getRepository(Category::class)->findAll();
  28.         return $this->render('admin/category/listCategories.html.twig', [
  29.                     'categories' => $categories,
  30.         ]);
  31.     }
  32.     #[Route('/add-category'methods: ['GET''POST'], name'add_category')]
  33.     public function addCategory(Request $requestManagerRegistry $doctrine) {
  34.         $em $doctrine->getManager();
  35.         if ($request->isMethod('post')) {
  36.             $category = new Category();
  37.             $category->setName($request->get('name'));
  38.             $category->setDescription($request->get('description'));
  39.             $category->setOrdre($request->get('ordre'));
  40.             $category->setColor($request->get('color'));
  41.             $category->setPublished(1);
  42.             $em->persist($category);
  43.             $em->flush();
  44.             if ($request->files->get('image')) {
  45.                 $file $request->files->get('image');
  46.                 $category->setImage("uploads/category/cat-" $category->getId() . "/" $file->getClientOriginalName());
  47.                 $file->move("uploads/category/cat-" $category->getId() . "/"$file->getClientOriginalName());
  48.             }
  49.             $em->persist($category);
  50.             $em->flush();
  51.             $this->addFlash('success''Category created successfully');
  52.             return $this->redirectToRoute('list_categories');
  53.         }
  54.         return $this->render('admin/category/addCategory.html.twig', [
  55.         ]);
  56.     }
  57.     #[Route('/subcategories-list'methods: ['GET'], name'list_subcategories')]
  58.     public function listSubcategories(Request $requestManagerRegistry $doctrine) {
  59.         $em $doctrine->getManager();
  60.         $subcategories $em->getRepository(Subcategory::class)->findAll();
  61.         return $this->render('admin/category/listSubcategories.html.twig', [
  62.                     'subcategories' => $subcategories,
  63.         ]);
  64.     }
  65.     #[Route('/add-subcategory'methods: ['GET''POST'], name'add_subcategory')]
  66.     public function addSubcategory(Request $requestManagerRegistry $doctrine) {
  67.         $em $doctrine->getManager();
  68.         $categories $em->getRepository(Category::class)->findAll();
  69.         if ($request->isMethod('post')) {
  70.             $subcategory = new Subcategory();
  71.             $subcategory->setName($request->get('name'));
  72.             $subcategory->setDescription($request->get('description'));
  73.             $subcategory->setOrdre($request->get('ordre'));
  74.             $subcategory->setPublished(1);
  75.             $em->persist($subcategory);
  76.             $em->flush();
  77.             $category $em->getRepository(Category::class)->find($request->get('category'));
  78.             $category->addSubcategory($subcategory);
  79.             if ($request->files->get('image')) {
  80.                 $file $request->files->get('image');
  81.                 $subcategory->setImage("uploads/category/cat-" $subcategory->getId() . "/" $file->getClientOriginalName());
  82.                 $file->move("uploads/category/cat-" $subcategory->getId() . "/"$file->getClientOriginalName());
  83.             }
  84.             $em->persist($subcategory);
  85.             $em->flush();
  86.             $this->addFlash('success''Category created successfully');
  87.             return $this->redirectToRoute('list_subcategories');
  88.         }
  89.         return $this->render('admin/category/addSubcategory.html.twig', [
  90.                     'categories' => $categories,
  91.         ]);
  92.     }
  93.     #[Route('/edit-category-{id}'methods: ['GET''POST'], name'edit_category')]
  94.     public function editCategory(Request $request$idManagerRegistry $doctrine) {
  95.         $em $doctrine->getManager();
  96.         $category $em->getRepository(Category::class)->find($id);
  97.         if ($request->isMethod('post')) {
  98.             $category->setName($request->get('name'));
  99.             $category->setDescription($request->get('description'));
  100.             $category->setOrdre($request->get('ordre'));
  101.             $category->setColor($request->get('color'));
  102.             $category->setPublished(1);
  103.             $em->persist($category);
  104.             $em->flush();
  105.             if ($request->files->get('image')) {
  106.                 $file $request->files->get('image');
  107.                 $category->setImage("uploads/category/cat-" $category->getId() . "/" $file->getClientOriginalName());
  108.                 $file->move("uploads/category/cat-" $category->getId() . "/"$file->getClientOriginalName());
  109.             }
  110.             $em->persist($category);
  111.             $em->flush();
  112.             $this->addFlash('success''Category created successfully');
  113.             return $this->redirectToRoute('list_categories');
  114.         }
  115.         return $this->render('admin/category/edit/editCategory.html.twig', [
  116.                     'category' => $category,
  117.         ]);
  118.     }
  119.     #[Route('/edit-subcategory-{id}'methods: ['GET''POST'], name'edit_subcategory')]
  120.     public function editSubcategory(Request $request$idManagerRegistry $doctrine) {
  121.         $em $doctrine->getManager();
  122.         $subcategory $em->getRepository(Category::class)->find($id);
  123.         $categories $em->getRepository(Category::class)->findAll();
  124.         if ($request->isMethod('post')) {
  125.             $subcategory->setName($request->get('name'));
  126.             $subcategory->setDescription($request->get('description'));
  127.             $subcategory->setOrdre($request->get('ordre'));
  128.             $subcategory->setPublished(1);
  129.             $em->persist($subcategory);
  130.             $em->flush();
  131.             $category $em->getRepository(Category::class)->find($request->get('category'));
  132.             $category->addSubcategory($subcategory);
  133.             if ($request->files->get('image')) {
  134.                 $file $request->files->get('image');
  135.                 $subcategory->setImage("uploads/category/cat-" $category->getId() . "/" $file->getClientOriginalName());
  136.                 $file->move("uploads/category/cat-" $category->getId() . "/"$file->getClientOriginalName());
  137.             }
  138.             $em->persist($category);
  139.             $em->flush();
  140.             $this->addFlash('success''Subcategory created successfully');
  141.             return $this->redirectToRoute('list_categories');
  142.         }
  143.         return $this->render('admin/category/edit/editSubcategory.html.twig', [
  144.                     'subcategory' => $subcategory,
  145.                     'categories' => $categories,
  146.         ]);
  147.     }
  148. }