src/Controller/Front/ServiceController.php line 40

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\ServiceRepository;
  10. use App\Repository\Course\PlanRepository;
  11. use App\Entity\Article\Service;
  12. use App\Entity\Booking\Booking;
  13. use App\Form\Booking\BookingType;
  14. class ServiceController extends AbstractController
  15. {
  16.     /** @var BannerRepository */
  17.     private $bannerRepository;
  18.     /** @var ServiceRepository */
  19.     private $serviceRepository;
  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 $bannerRepositoryServiceRepository $serviceRepositorySessionInterface $session)
  29.     {
  30.         $this->bannerRepository $bannerRepository;
  31.         $this->serviceRepository $serviceRepository;
  32.         $this->session $session;
  33.         $this->theme $this->session->get('theme''horse');
  34.     }
  35.     public function index(Request $requestPaginatorInterface $paginatorPlanRepository $planRepository): Response
  36.     {
  37.         $localeCode $request->getLocale();
  38.         $theme $this->theme;
  39.         $booking = new Booking();
  40.         $form $this->createForm(BookingType::class, $booking);
  41.         $banner $this->bannerRepository->findOneBy(['type' => $theme]);
  42.         $query $this->serviceRepository->findServicesQuery($localeCode);
  43.         $services $paginator->paginate($query$request->query->getInt('page'1), 9);
  44.         $plans $planRepository->findPlans($localeCode$theme);
  45.         $bookingForm $form->createView();
  46.         return $this->render('front/service/index.html.twig'compact('services''banner''plans''theme''bookingForm'));
  47.     }
  48.     public function show(Request $requestService $service): Response
  49.     {
  50.         $localeCode $request->getLocale();
  51.         $medias $service->getMedias();
  52.     
  53.         $banner $this->bannerRepository->findOneBy(['type' => $this->theme]);
  54.         $service $this->serviceRepository->findService($service->getId(), $localeCode);
  55.         return $this->render('front/service/show.html.twig'compact('service''banner''medias'));
  56.     }
  57. }