src/Controller/Mvc/activityController.php line 74

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("/activity")
  11.  */
  12. class activityController extends AbstractController
  13. {
  14.     /**
  15.      * @Route ("/", name="activity_index", methods={"GET"})
  16.      */
  17.     public function index(
  18.         Request $request,
  19.         FrontService $service
  20.     ) {
  21.         $service
  22.             ->setType(TargetChoiceUtil::ACTIVITY)
  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.         $query4category $query;
  36.         unset($query4category['category']);
  37.         return $this->render('pages/activity/index.html.twig', [
  38.             "paginate" => $paginate,
  39.             "data" => $paginate->getPaginator()->getIterator(),
  40.             "filter" => $filter,
  41.             "query" => $query,
  42.             "query4area" => $query4area,
  43.             "query4category" => $query4category
  44.         ]);
  45.     }
  46.     /**
  47.      * @Route ("/filter", name="activity_filter", methods={"GET"})
  48.      */
  49.     public function filter(
  50.         Request $request,
  51.         FrontService $service
  52.     ) {
  53.         $service
  54.             ->setType(TargetChoiceUtil::ACTIVITY)
  55.             ->setLocale($request->getLocale())
  56.         ;
  57.         $filter $service->getFilter();
  58.         $criteria $service->getCriteriaFromRequest($request);
  59.         $filter $service->handleRequest($filter$criteria);
  60.         $query $service->createQueryFromFilter($filter);
  61.         return $this->render('pages/activity/filter.html.twig', [
  62.             "filter" => $filter,
  63.             "query" => $query
  64.         ]);
  65.     }
  66.     /**
  67.      * @Route("/{id}", name="activity_detail", methods={"GET"}, requirements={"id" = "\d+"})
  68.      */
  69.     public function detail(
  70.         Request $request,
  71.         FrontService $service,
  72.         int $id
  73.     ) {
  74.         $service
  75.             ->setType(TargetChoiceUtil::ACTIVITY)
  76.             ->setLocale($request->getLocale())
  77.         ;
  78.         $entry $service->getOneEntry($id);
  79.         if(!$entry) {
  80.             throw new NotFoundHttpException('Entry not found.');
  81.         }
  82.         $filter $service->getFilter();
  83.         $criteria $service->getCriteriaFromSession($request);
  84.         $filter $service->handleRequest($filter$criteria);
  85.         $query $service->createQueryFromFilter($filter);
  86.         return $this->render('pages/activity/detail.html.twig', [
  87.             "entry" => $entry,
  88.             "query" => $query,
  89.             "recommend" => $service->getRelatedEntry($entry)
  90.         ]);
  91.     }
  92. }