src/Controller/DistinctionsController.php line 71

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Distinctions\Distinctions;
  4. use App\Repository\Distinctions\DistinctionsRepository;
  5. use Knp\Component\Pager\PaginatorInterface;
  6. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  7. use Symfony\Component\HttpFoundation\Request;
  8. use Symfony\Component\HttpFoundation\Response;
  9. use Symfony\Component\Routing\Annotation\Route;
  10. /**
  11.  * @Route("/ci/distinctions")
  12.  */
  13. class DistinctionsController extends AbstractController
  14. {
  15.     /**
  16.      * @var DistinctionsRepository
  17.      */
  18.     private $repository;
  19.     public function __construct(DistinctionsRepository $repository)
  20.     {
  21.         $this->repository $repository;
  22.     }
  23.     /**
  24.      * @Route("/", name="distinctions.index")
  25.      * @param Request $request
  26.      * @param DistinctionsRepository $distinctionsRepository
  27.      * @param PaginatorInterface $paginator
  28.      * @return Response
  29.      */
  30.     public function index(Request $requestDistinctionsRepository $distinctionsRepositoryPaginatorInterface
  31.     $paginator): Response
  32.     {
  33.         $distinctions $paginator->paginate(
  34.             $distinctionsRepository->findBy(['online' => true]), /* query NOT result */
  35.             $request->query->getInt('page'1)/*page number*/,
  36.             $request->query->getInt('limit'12)/*limit per page*/
  37.         );
  38.         return $this->render('pages/internes/cit/distinctions/index.html.twig', [
  39.             'title' => 'Distinctions et Attributions',
  40.             'distinctions' => $distinctions,
  41.             'menu' => "Côte d'Ivoire Tourisme",
  42.             'current_page' => 'cit'
  43.         ]);
  44.     }
  45.     /**
  46.      * @Route("/{slug}/{id}", name="cit.distinctions.show")
  47.      * @param $slug
  48.      * @param Distinctions $distinction
  49.      * @return Response
  50.      */
  51.     public function show($slugDistinctions $distinction): Response
  52.     {
  53.         if ($distinction->getSlug() !== $slug) {
  54.             return $this->redirectToRoute('cit.distinctions.show', [
  55.                 'id' => $distinction->getId(),
  56.                 'slug' => $distinction->getSlug(),
  57.             ], 301);
  58.         }
  59.         $othersDistinctions $this->repository->getDistinctionsRandom($distinction3);
  60.         return $this->render('pages/internes/cit/distinctions/show.html.twig', [
  61.             'title' => $distinction->getName(),
  62.             'distinction' => $distinction,
  63.             'distinctions' => $othersDistinctions,
  64.             'menu' => "Côte d'Ivoire Tourisme",
  65.             'current_page' => 'cit'
  66.         ]);
  67.     }
  68. }