<?php
namespace App\Controller;
use App\Entity\Distinctions\Distinctions;
use App\Repository\Distinctions\DistinctionsRepository;
use Knp\Component\Pager\PaginatorInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
/**
* @Route("/ci/distinctions")
*/
class DistinctionsController extends AbstractController
{
/**
* @var DistinctionsRepository
*/
private $repository;
public function __construct(DistinctionsRepository $repository)
{
$this->repository = $repository;
}
/**
* @Route("/", name="distinctions.index")
* @param Request $request
* @param DistinctionsRepository $distinctionsRepository
* @param PaginatorInterface $paginator
* @return Response
*/
public function index(Request $request, DistinctionsRepository $distinctionsRepository, PaginatorInterface
$paginator): Response
{
$distinctions = $paginator->paginate(
$distinctionsRepository->findBy(['online' => true]), /* query NOT result */
$request->query->getInt('page', 1)/*page number*/,
$request->query->getInt('limit', 12)/*limit per page*/
);
return $this->render('pages/internes/cit/distinctions/index.html.twig', [
'title' => 'Distinctions et Attributions',
'distinctions' => $distinctions,
'menu' => "Côte d'Ivoire Tourisme",
'current_page' => 'cit'
]);
}
/**
* @Route("/{slug}/{id}", name="cit.distinctions.show")
* @param $slug
* @param Distinctions $distinction
* @return Response
*/
public function show($slug, Distinctions $distinction): Response
{
if ($distinction->getSlug() !== $slug) {
return $this->redirectToRoute('cit.distinctions.show', [
'id' => $distinction->getId(),
'slug' => $distinction->getSlug(),
], 301);
}
$othersDistinctions = $this->repository->getDistinctionsRandom($distinction, 3);
return $this->render('pages/internes/cit/distinctions/show.html.twig', [
'title' => $distinction->getName(),
'distinction' => $distinction,
'distinctions' => $othersDistinctions,
'menu' => "Côte d'Ivoire Tourisme",
'current_page' => 'cit'
]);
}
}