src/Controller/CelebritesController.php line 48

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Articles;
  4. use App\Entity\Categoriearticles;
  5. use App\Entity\Celebrites;
  6. use App\Repository\ArticlesRepository;
  7. use App\Repository\CelebritesRepository;
  8. use Knp\Component\Pager\PaginatorInterface;
  9. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  10. use Symfony\Component\HttpFoundation\Request;
  11. use Symfony\Component\HttpFoundation\Response;
  12. use Symfony\Component\Routing\Annotation\Route;
  13. /**
  14.  * @Route("/celebrites")
  15.  */
  16. class CelebritesController extends AbstractController
  17. {
  18.     /**
  19.      * @var CelebritesRepository
  20.      */
  21.     private $celebritesRepository;
  22.     public function __construct(CelebritesRepository $celebritesRepository)
  23.     {
  24.         $this->celebritesRepository $celebritesRepository;
  25.     }
  26.     /**
  27.      * @Route("/", name="celebrites.index")
  28.      * @param Request $request
  29.      * @param PaginatorInterface $paginator
  30.      * @return Response
  31.      */
  32.     public function index(Request $requestPaginatorInterface $paginator): Response
  33.     {
  34.         $celebrites $paginator->paginate(
  35.             $this->getDoctrine()->getRepository(Celebrites::class)->findBy(['online' => true]), /* query NOT result */
  36.             $request->query->getInt('page'1)/*page number*/,
  37.             $request->query->getInt('limit'12)/*limit per page*/
  38.         );
  39.         return $this->render('pages/internes/celebrites/index.html.twig', [
  40.             'title' => 'Nos célébrités',
  41.             'celebrites' => $celebrites,
  42.             'menu' => "Visiter",
  43.             'current_page' => 'visites'
  44.         ]);
  45.     }
  46.     /**
  47.      * @Route("/details/{slug}/{id}", name="celebrites.show")
  48.      * @param $slug
  49.      * @param Celebrites $celebrite
  50.      * @return Response
  51.      */
  52.     public function show($slugCelebrites $celebrite): Response
  53.     {
  54.         if ($celebrite->getSlug() !== $slug) {
  55.             return $this->redirectToRoute('celebrites.show', [
  56.                 'id' => $celebrite->getId(),
  57.                 'slug' => $celebrite->getSlug(),
  58.             ], 301);
  59.         }
  60.         $othersCelebrites $this->celebritesRepository->getCelebriteRandom($celebrite3);
  61.         return $this->render('pages/internes/celebrites/show.html.twig', [
  62.             'title' => $celebrite->getName(),
  63.             'celebrite' => $celebrite,
  64.             'celebrites' => $othersCelebrites,
  65.             'menu' => "Visiter",
  66.             'current_page' => 'visites'
  67.         ]);
  68.     }
  69. }