- <?php
- namespace App\Controller\Mvc;
- use App\Service\Entry\ReportService;
- use App\Utils\TargetChoiceUtil;
- use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
- use Symfony\Component\HttpFoundation\Request;
- use Symfony\Component\HttpFoundation\Response;
- use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
- use Symfony\Component\Routing\Annotation\Route;
- /**
-  * @Route("/report")
-  */
- class reportController extends AbstractController
- {
-     /**
-      * @Route ("/", name="report_index", methods={"GET"})
-      */
-     public function index(
-         Request $request,
-         ReportService $service
-     ) {
-         $criteria = $service->getCriteriaFromRequest($request);
-         $qb = $service->getQueryBuilder($criteria);
-         $paginate = $service->handleList($qb, $criteria);
-         return $this->render('pages/report/index.html.twig', [
-             "paginate" => $paginate,
-             "data" => $paginate->getPaginator()->getIterator(),
-             "categories" => TargetChoiceUtil::localeNames($request->getLocale()),
-             "criteria" => $criteria
-         ]);
-     }
-     /**
-      * @Route("/{id}", name="report_detail", methods={"GET"}, requirements={"id" = "\d+"})
-      */
-     public function detail(
-         Request $request,
-         ReportService $service,
-         int $id
-     ) {
-         $report = $service
-             ->getQueryBuilder(["id" => $id])
-             ->getQuery()
-             ->getOneOrNullResult()
-             ;
-         if(!$report) {
-             throw new NotFoundHttpException('記事がありません');
-         }
-         return $this->render('pages/report/detail.html.twig', [
-             "report" => $report
-         ]);
-     }
-     /**
-      * @Route ("/headline", name="report_headline", methods={"GET"})
-      */
-     public function headline(
-         ReportService $service
-     ): Response {
-         $reports = $service
-             ->getQueryBuilder([])
-             ->setMaxResults(2)
-             ->getQuery()
-             ->getResult()
-             ;
-         return $this->render('pages/report/headline.html.twig', [
-             "reports" => $reports
-         ]);
-     }
- }
-