src/Controller/Salons/SalonsController.php line 64

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Salons;
  3. use App\Entity\Salons\Categoriesalons;
  4. use App\Entity\Salons\Salons;
  5. use App\Repository\Salons\CategoriesalonsRepository;
  6. use App\Repository\Salons\SalonsRepository;
  7. use Knp\Component\Pager\PaginatorInterface;
  8. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  9. use Symfony\Component\HttpFoundation\Request;
  10. use Symfony\Component\HttpFoundation\Response;
  11. use Symfony\Component\Routing\Annotation\Route;
  12. /**
  13.  * @Route("/ci-tourisme/salons")
  14.  */
  15. class SalonsController extends AbstractController
  16. {
  17.     /**
  18.      * @var SalonsRepository
  19.      */
  20.     private $salonsRepository;
  21.     /**
  22.      * @var CategoriesalonsRepository
  23.      */
  24.     private $categoriesalonsRepository;
  25.     public function __construct(SalonsRepository $salonsRepositoryCategoriesalonsRepository $categoriesalonsRepository)
  26.     {
  27.         $this->salonsRepository $salonsRepository;
  28.         $this->categoriesalonsRepository $categoriesalonsRepository;
  29.     }
  30.     /**
  31.      * @Route("/{slug}/{id}", name="salons.index")
  32.      * @param Request $request
  33.      * @param Categoriesalons $categoriesalons
  34.      * @param PaginatorInterface $paginator
  35.      * @return Response
  36.      */
  37.     public function index(Request $requestCategoriesalons $categoriesalonsPaginatorInterface $paginator): Response
  38.     {
  39.         $salons $paginator->paginate(
  40.             $this->getDoctrine()->getRepository(Salons::class)->findBy(['categories' => $categoriesalons'online' => true]), /* query NOT result */
  41.             $request->query->getInt('page'1)/*page number*/,
  42.             $request->query->getInt('limit'12)/*limit per page*/
  43.         );
  44.         return $this->render('pages/internes/cit/salons/index.html.twig', [
  45.             'title' => $categoriesalons->getName(),
  46.             'categorie' => $categoriesalons,
  47.             'salons' => $salons,
  48.             'menu' => "Cote d'Ivoire Tourisme",
  49.             'current_page' => 'cit'
  50.         ]);
  51.     }
  52.     /**
  53.      * @Route("/", name="salons.categories")
  54.      * @param Request $request
  55.      * @param PaginatorInterface $paginator
  56.      * @return Response
  57.      */
  58.     public function showCategoriesSalon(Request $requestPaginatorInterface $paginator): Response
  59.     {
  60.         $CategorieSalons $paginator->paginate(
  61.             $this->categoriesalonsRepository->findAll(), /* query NOT result */
  62.             $request->query->getInt('page'1)/*page number*/,
  63.             $request->query->getInt('limit'15)/*limit per page*/
  64.         );
  65.         return $this->render('pages/internes/cit/salons/showCategories.html.twig', [
  66.             'title' => 'Nos salons',
  67.             'categoriesalons' => $CategorieSalons,
  68.             'menu' => "Cote d'Ivoire Tourisme",
  69.             'current_page' => 'cit'
  70.         ]);
  71.     }
  72.     /**
  73.      * @Route("/details/{slug}/{id}", name="salons.show")
  74.      * @param $slug
  75.      * @param Salons $salon
  76.      * @return Response
  77.      */
  78.     public function show($slugSalons $salon): Response
  79.     {
  80.         if ($salon->getSlug() !== $slug) {
  81.             return $this->redirectToRoute('salons.show', [
  82.                 'id' => $salon->getId(),
  83.                 'slug' => $salon->getSlug(),
  84.             ], 301);
  85.         }
  86.         $othersSalons $this->salonsRepository->getSalonRandom($salon3);
  87.         return $this->render('pages/internes/cit/salons/show.html.twig', [
  88.             'title' => $salon->getName(),
  89.             'salon' => $salon,
  90.             'salons' => $othersSalons,
  91.             'menu' => "Cote d'Ivoire Tourisme",
  92.             'current_page' => 'cit'
  93.         ]);
  94.     }
  95. }