<?php
namespace App\Controller;
use App\Entity\Articles;
use App\Entity\Categoriearticles;
use App\Entity\Celebrites;
use App\Repository\ArticlesRepository;
use App\Repository\CelebritesRepository;
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("/celebrites")
*/
class CelebritesController extends AbstractController
{
/**
* @var CelebritesRepository
*/
private $celebritesRepository;
public function __construct(CelebritesRepository $celebritesRepository)
{
$this->celebritesRepository = $celebritesRepository;
}
/**
* @Route("/", name="celebrites.index")
* @param Request $request
* @param PaginatorInterface $paginator
* @return Response
*/
public function index(Request $request, PaginatorInterface $paginator): Response
{
$celebrites = $paginator->paginate(
$this->getDoctrine()->getRepository(Celebrites::class)->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/celebrites/index.html.twig', [
'title' => 'Nos célébrités',
'celebrites' => $celebrites,
'menu' => "Visiter",
'current_page' => 'visites'
]);
}
/**
* @Route("/details/{slug}/{id}", name="celebrites.show")
* @param $slug
* @param Celebrites $celebrite
* @return Response
*/
public function show($slug, Celebrites $celebrite): Response
{
if ($celebrite->getSlug() !== $slug) {
return $this->redirectToRoute('celebrites.show', [
'id' => $celebrite->getId(),
'slug' => $celebrite->getSlug(),
], 301);
}
$othersCelebrites = $this->celebritesRepository->getCelebriteRandom($celebrite, 3);
return $this->render('pages/internes/celebrites/show.html.twig', [
'title' => $celebrite->getName(),
'celebrite' => $celebrite,
'celebrites' => $othersCelebrites,
'menu' => "Visiter",
'current_page' => 'visites'
]);
}
}