src/Controller/Front/EventController.php line 42

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Front;
  3. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  4. use Symfony\Component\HttpFoundation\Response;
  5. use Symfony\Component\HttpFoundation\Request;
  6. use Knp\Component\Pager\PaginatorInterface;
  7. use Symfony\Component\HttpFoundation\Session\SessionInterface;
  8. use App\Repository\Banner\BannerRepository;
  9. use App\Repository\Article\EventRepository;
  10. use App\Repository\Article\CompetitionRepository;
  11. use App\Entity\Article\Event;
  12. class EventController extends AbstractController
  13. {
  14.     /** @var BannerRepository */
  15.     private $bannerRepository;
  16.     /** @var EventRepository */
  17.     private $eventRepository;
  18.     /** @var CompetitionRepository */
  19.     private $competitionRepository;
  20.     /** @var SessionInterface */
  21.     private $session;
  22.     /** @var string $theme */
  23.     private $theme;
  24.     /**
  25.      * @param BannerRepository $bannerRepository
  26.      * @param Session $session
  27.      */
  28.     public function __construct(BannerRepository $bannerRepositoryEventRepository $eventRepositoryCompetitionRepository $competitionRepositorySessionInterface $session)
  29.     {
  30.         $this->bannerRepository $bannerRepository;
  31.         $this->eventRepository $eventRepository;
  32.         $this->competitionRepository $competitionRepository;
  33.         $this->session $session;
  34.         $this->theme $this->session->get('theme''horse');
  35.     }
  36.     public function index(Request $requestPaginatorInterface $paginator): Response
  37.     {
  38.         $localeCode $request->getLocale();
  39.         $banner $this->bannerRepository->findOneBy(['type' => $this->theme]);
  40.         $query $this->eventRepository->findEventsQuery($localeCode);
  41.         $events $paginator->paginate($query$request->query->getInt('page'1), 9);
  42.         return $this->render('front/event/index.html.twig'compact('events''banner'));
  43.     }
  44.     public function competitions(Request $requestPaginatorInterface $paginator): Response
  45.     {
  46.         $localeCode $request->getLocale();
  47.         $banner $this->bannerRepository->findOneBy(['type' => $this->theme]);
  48.         $query $this->competitionRepository->findCompetitionsQuery($localeCode);
  49.         $competitions $paginator->paginate($query$request->query->getInt('page'1), 6);
  50.         return $this->render('front/competition/index.html.twig'compact('competitions''banner'));
  51.     }
  52.     public function show(Request $requestEvent $event): Response
  53.     {
  54.         $localeCode $request->getLocale();
  55.         $medias $event->getMedias();
  56.     
  57.         $banner $this->bannerRepository->findOneBy(['type' => $this->theme]);
  58.         $event $this->eventRepository->findEvent($event->getId(), $localeCode);
  59.         return $this->render('front/event/show.html.twig'compact('event''banner''medias'));
  60.     }
  61. }