src/Controller/Mvc/facilityController.php line 71

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Mvc;
  3. use App\Service\Entry\FrontService;
  4. use App\Utils\TargetChoiceUtil;
  5. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  6. use Symfony\Component\HttpFoundation\Request;
  7. use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
  8. use Symfony\Component\Routing\Annotation\Route;
  9. /**
  10.  * @Route("/facility")
  11.  */
  12. class facilityController extends AbstractController
  13. {
  14.     /**
  15.      * @Route ("/", name="facility_index", methods={"GET"})
  16.      */
  17.     public function index(
  18.         Request $request,
  19.         FrontService $service
  20.     ) {
  21.         $service
  22.             ->setType(TargetChoiceUtil::HOTEL)
  23.             ->setLocale($request->getLocale())
  24.         ;
  25.         $filter $service->getFilter();
  26.         $criteria $service->getCriteriaFromRequest($request);
  27.         $filter $service->handleRequest($filter$criteria);
  28.         $qb $service->getQueryBuilderForList();
  29.         $service->addDqlWhere($qb$filter);
  30.         $qb->orderBy("a.id""desc");
  31.         $paginate $service->handleList($qb$criteria);
  32.         $query $service->createQueryFromFilter($filter);
  33.         $query4area $query;
  34.         unset($query4area['area']);
  35.         return $this->render('pages/facility/index.html.twig', [
  36.             "paginate" => $paginate,
  37.             "data" => $paginate->getPaginator()->getIterator(),
  38.             "filter" => $filter,
  39.             "query" => $query,
  40.             "query4area" => $query4area
  41.         ]);
  42.     }
  43.     /**
  44.      * @Route ("/filter", name="facility_filter", methods={"GET"})
  45.      */
  46.     public function filter(
  47.         Request $request,
  48.         FrontService $service
  49.     ) {
  50.         $service
  51.             ->setType(TargetChoiceUtil::HOTEL)
  52.             ->setLocale($request->getLocale())
  53.         ;
  54.         $filter $service->getFilter();
  55.         $criteria $service->getCriteriaFromRequest($request);
  56.         $filter $service->handleRequest($filter$criteria);
  57.         $query $service->createQueryFromFilter($filter);
  58.         return $this->render('pages/facility/filter.html.twig', [
  59.             "filter" => $filter,
  60.             "query" => $query
  61.         ]);
  62.     }
  63.     /**
  64.      * @Route("/{id}", name="facility_detail", methods={"GET"}, requirements={"id" = "\d+"})
  65.      */
  66.     public function detail(
  67.         Request $request,
  68.         FrontService $service,
  69.         int $id
  70.     ) {
  71.         $service
  72.             ->setType(TargetChoiceUtil::HOTEL)
  73.             ->setLocale($request->getLocale())
  74.         ;
  75.         $entry $service->getOneEntry($id);
  76.         if(!$entry) {
  77.             throw new NotFoundHttpException('Entry not found.');
  78.         }
  79.         $filter $service->getFilter();
  80.         $criteria $service->getCriteriaFromSession($request);
  81.         $filter $service->handleRequest($filter$criteria);
  82.         $query $service->createQueryFromFilter($filter);
  83.         return $this->render('pages/facility/detail.html.twig', [
  84.             "entry" => $entry,
  85.             "query" => $query,
  86.             "recommend" => $service->getRelatedEntry($entry)
  87.         ]);
  88.     }
  89. }