src/Controller/Dashboard/Admin/CountryController.php line 172

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\Country;
  12. use App\Entity\Destination;
  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/country')]
  23. class CountryController extends AbstractController {
  24.     #[Route('/countries-list'methods: ['GET'], name'list_countries')]
  25.     public function listCountries(Request $requestManagerRegistry $doctrine) {
  26.         $em $doctrine->getManager();
  27.         $countries $em->getRepository(Country::class)->findAll();
  28.         return $this->render('admin/country/listCountries.html.twig', [
  29.                     'countries' => $countries,
  30.         ]);
  31.     }
  32.     #[Route('/add-country'methods: ['GET''POST'], name'add_country')]
  33.     public function addCountry(Request $requestManagerRegistry $doctrine) {
  34.         $em $doctrine->getManager();
  35.         if ($request->isMethod('post')) {
  36.             $country = new Country();
  37.             $country->setName($request->get('name'));
  38.             $country->setDescription($request->get('description'));
  39.             $country->setOrdre($request->get('ordre'));
  40.             $country->setPublished(1);
  41.             $em->persist($country);
  42.             $em->flush();
  43.             if ($request->files->get('image')) {
  44.                 $file $request->files->get('image');
  45.                 $country->setImage("uploads/country/cat-" $country->getId() . "/" $file->getClientOriginalName());
  46.                 $file->move("uploads/country/cat-" $country->getId() . "/"$file->getClientOriginalName());
  47.             }
  48.             $em->persist($country);
  49.             $em->flush();
  50.             $this->addFlash('success''Country created successfully');
  51.             return $this->redirectToRoute('list_countries');
  52.         }
  53.         return $this->render('admin/country/addCountry.html.twig', [
  54.         ]);
  55.     }
  56.     #[Route('/destinations-list'methods: ['GET'], name'list_destinations')]
  57.     public function listDestinations(Request $requestManagerRegistry $doctrine) {
  58.         $em $doctrine->getManager();
  59.         $destinations $em->getRepository(Destination::class)->findAll();
  60.         return $this->render('admin/country/listDestinations.html.twig', [
  61.                     'destinations' => $destinations,
  62.         ]);
  63.     }
  64.     #[Route('/add-destination'methods: ['GET''POST'], name'add_destination')]
  65.     public function addDestination(Request $requestManagerRegistry $doctrine) {
  66.         $em $doctrine->getManager();
  67.         $countries $em->getRepository(Country::class)->findAll();
  68.         if ($request->isMethod('post')) {
  69.             $destination = new Destination();
  70.             $destination->setName($request->get('name'));
  71.             $destination->setDescription($request->get('description'));
  72.             $destination->setOrdre($request->get('ordre'));
  73. //            $destination->setColor($request->get('color'));
  74.             $destination->setTypedestination($request->get('typedestination'));
  75.             $destination->setPublished(1);
  76.             $em->persist($destination);
  77.             $em->flush();
  78.             $country $em->getRepository(Country::class)->find($request->get('country'));
  79.             $country->addDestination($destination);
  80.             if ($request->files->get('image')) {
  81.                 $file $request->files->get('image');
  82.                 $destination->setImage("uploads/country/cat-" $destination->getId() . "/" $file->getClientOriginalName());
  83.                 $file->move("uploads/country/cat-" $destination->getId() . "/"$file->getClientOriginalName());
  84.             }
  85.             $em->persist($destination);
  86.             $em->flush();
  87.             $this->addFlash('success''Country created successfully');
  88.             return $this->redirectToRoute('list_destinations');
  89.         }
  90.         return $this->render('admin/country/addDestination.html.twig', [
  91.                     'countries' => $countries,
  92.         ]);
  93.     }
  94.     #[Route('/edit-country-{id}'methods: ['GET''POST'], name'edit_country')]
  95.     public function editCountry(Request $request$idManagerRegistry $doctrine) {
  96.         $em $doctrine->getManager();
  97.         $country $em->getRepository(Country::class)->find($id);
  98.         if ($request->isMethod('post')) {
  99.             $country->setName($request->get('name'));
  100.             $country->setDescription($request->get('description'));
  101.             $country->setOrdre($request->get('ordre'));
  102.             $country->setColor($request->get('color'));
  103.             $country->setPublished(1);
  104.             $em->persist($country);
  105.             $em->flush();
  106.             if ($request->files->get('image')) {
  107.                 $file $request->files->get('image');
  108.                 $country->setImage("uploads/country/cat-" $country->getId() . "/" $file->getClientOriginalName());
  109.                 $file->move("uploads/country/cat-" $country->getId() . "/"$file->getClientOriginalName());
  110.             }
  111.             $em->persist($country);
  112.             $em->flush();
  113.             $this->addFlash('success''Country created successfully');
  114.             return $this->redirectToRoute('list_countries');
  115.         }
  116.         return $this->render('admin/country/edit/editCountry.html.twig', [
  117.                     'country' => $country,
  118.         ]);
  119.     }
  120.     #[Route('/edit-destination-{id}'methods: ['GET''POST'], name'edit_destination')]
  121.     public function editDestination(Request $request$idManagerRegistry $doctrine) {
  122.         $em $doctrine->getManager();
  123.         $destination $em->getRepository(Destination::class)->find($id);
  124.         $countries $em->getRepository(Country::class)->findAll();
  125.         if ($request->isMethod('post')) {
  126.             $destination->setName($request->get('name'));
  127.             $destination->setDescription($request->get('description'));
  128.             $destination->setOrdre($request->get('ordre'));
  129. //            $destination->setColor($request->get('color'));
  130.             $destination->setTypedestination($request->get('typedestination'));
  131.             $destination->setPublished(1);
  132.             $em->persist($destination);
  133.             $em->flush();
  134.             $country $em->getRepository(Country::class)->find($request->get('country'));
  135.             $country->addDestination($destination);
  136.             if ($request->files->get('image')) {
  137.                 $file $request->files->get('image');
  138.                 $destination->setImage("uploads/country/cat-" $country->getId() . "/" $file->getClientOriginalName());
  139.                 $file->move("uploads/country/cat-" $country->getId() . "/"$file->getClientOriginalName());
  140.             }
  141.             $em->persist($country);
  142.             $em->flush();
  143.             $this->addFlash('success''Destination created successfully');
  144.             return $this->redirectToRoute('list_countries');
  145.         }
  146.         return $this->render('admin/country/edit/editDestination.html.twig', [
  147.                     'destination' => $destination,
  148.                     'countries' => $countries,
  149.         ]);
  150.     }
  151. }