Newer
Older
<?php
namespace App\Controller;

G. Daryl M. OKOU
a validé
use App\Repository\CommentaireRepository;
Mathéo Beaudouin
a validé
use App\Repository\EtablissementRepository;
use Doctrine\ORM\Tools\Pagination\Paginator;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
final class EtablissementController extends AbstractController
{

G. Daryl M. OKOU
a validé
#[Route('/etablissements', name: 'app_etablissements')]
// public function index(EtablissementRepository $etablissementRepository): Response
// {
// $etablissements = $etablissementRepository->findAll();
// return $this->render('etablissement/index.html.twig', [
// 'etablissements' => $etablissements,
// 'filtre' => 'Tous les établissements'
// ]);
// }
public function index(Request $request, PaginatorInterface $paginator, EtablissementRepository $etablissementRepository): Response
$queryBuilder = $etablissementRepository->createQueryBuilder('e')
->orderBy('e.nom', 'ASC');
$pagination = $paginator->paginate(
$queryBuilder,
$request->query->getInt('page', 1),
10
);
Mathéo Beaudouin
a validé
return $this->render('etablissement/index.html.twig', [
]);
#[Route('/etablissements/departement/{code_departement}', name: 'app_departement')]
Mathéo Beaudouin
a validé
public function departement(EtablissementRepository $etablissementRepository, string $code_departement): Response
Mathéo Beaudouin
a validé
$etablissements = $etablissementRepository->findBy(['code_departement' => $code_departement]);

G. Daryl M. OKOU
a validé
$departement = $etablissements[array_key_first($etablissements)] -> getDepartement();
Mathéo Beaudouin
a validé
return $this->render('etablissement/liste.html.twig', [
Mathéo Beaudouin
a validé
'etablissements' => $etablissements,

G. Daryl M. OKOU
a validé
'filtre' => "Département : $departement"
#[Route('/etablissements/academie/{code_academie}', name: 'app_academie')]
Mathéo Beaudouin
a validé
public function academie(EtablissementRepository $etablissementRepository, string $code_academie): Response
$etablissements = $etablissementRepository->findBy(['code_academie' => $code_academie]);

G. Daryl M. OKOU
a validé
$academie = $etablissements[array_key_first($etablissements)] -> getAcademie();
Mathéo Beaudouin
a validé
return $this->render('etablissement/liste.html.twig', [
'etablissements' => $etablissements,

G. Daryl M. OKOU
a validé
'filtre' => "Académie : $academie"
#[Route('/etablissements/region/{code_region}', name: 'app_region')]
Mathéo Beaudouin
a validé
public function region(EtablissementRepository $etablissementRepository, string $code_region): Response
Mathéo Beaudouin
a validé
$etablissements = $etablissementRepository->findBy(['code_region' => $code_region]);

G. Daryl M. OKOU
a validé
$region = $etablissements[array_key_first($etablissements)] -> getRegion();
Mathéo Beaudouin
a validé
return $this->render('etablissement/liste.html.twig', [
Mathéo Beaudouin
a validé
'etablissements' => $etablissements,

G. Daryl M. OKOU
a validé
'filtre' => "Région : $region"
#[Route('/etablissements/commune/{code_commune}', name: 'app_commune')]
public function commune(EtablissementRepository $etablissementRepository, string $code_commune): Response
$etablissements = $etablissementRepository->findBy(['code_commune' => $code_commune]);

G. Daryl M. OKOU
a validé
$commune = $etablissements[array_key_first($etablissements)] -> getCommune();
return $this->render('etablissement/liste.html.twig', [
Mathéo Beaudouin
a validé
'etablissements' => $etablissements,

G. Daryl M. OKOU
a validé
'filtre' => "Commune : $commune",
]);
}
#[Route('/etablissements/{id}', name: 'app_etablissement')]
public function show(EtablissementRepository $etablissementRepository,CommentaireRepository $commentaireRepository , int $id): Response
{
$etablissement = $etablissementRepository->find($id);
$commentaires = $commentaireRepository->findBy(['etablissement' => $id]);
return $this->render('etablissement/show.html.twig', [
'etablissement' => $etablissement,
'commentaires' => $commentaires,