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 Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
use App\Entity\Etablissement;
use App\Form\EtablissementType;
use Doctrine\ORM\EntityManagerInterface;
final class EtablissementController extends AbstractController
{

G. Daryl M. OKOU
a validé
#[Route('/etablissements', name: 'app_etablissements')]
public function index(Request $request, PaginatorInterface $paginator, EtablissementRepository $etablissementRepository): Response
Glody Kutumbakana
a validé
$queryBuilder = $etablissementRepository->queryFindOrderedByName();
$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')]
Glody Kutumbakana
a validé
public function departement(Request $request, PaginatorInterface $paginator, EtablissementRepository $etablissementRepository): Response
Glody Kutumbakana
a validé
$code_departement = $request->get('code_departement');
$departement = $etablissementRepository->findDepartementByCode($code_departement);
$queryBuilder = $etablissementRepository->queryFindOrderedByCategorie(['code_departement' => $code_departement]);
$pagination = $paginator->paginate(
$queryBuilder,
$request->query->getInt('page', 1),
10
);
Mathéo Beaudouin
a validé
return $this->render('etablissement/liste.html.twig', [
Glody Kutumbakana
a validé
'pagination' => $pagination,
'filtre' => "Département : $departement "
Glody Kutumbakana
a validé
#[Route('/etablissements/academie/{code_academie}', name: 'app_academie')]
public function academie(Request $request, PaginatorInterface $paginator, EtablissementRepository $etablissementRepository): Response
$code_academie = $request->get('code_academie');
$academie = $etablissementRepository->findAcademieByCode($code_academie);
$queryBuilder = $etablissementRepository->queryFindOrderedByCategorie(['code_academie' => $code_academie]);
$pagination = $paginator->paginate(
$queryBuilder,
$request->query->getInt('page', 1),
10
);
Mathéo Beaudouin
a validé
return $this->render('etablissement/liste.html.twig', [

G. Daryl M. OKOU
a validé
'filtre' => "Académie : $academie"
#[Route('/etablissements/region/{code_region}', name: 'app_region')]
Glody Kutumbakana
a validé
public function region(Request $request, PaginatorInterface $paginator, EtablissementRepository $etablissementRepository): Response
Glody Kutumbakana
a validé
$code_region = $request->get('code_region');
$region = $etablissementRepository->findRegionByCode($code_region);
$queryBuilder = $etablissementRepository->queryFindOrderedByCategorie(['code_region' => $code_region]);
$pagination = $paginator->paginate(
$queryBuilder,
$request->query->getInt('page', 1),
10
);
Mathéo Beaudouin
a validé
return $this->render('etablissement/liste.html.twig', [
Glody Kutumbakana
a validé
'pagination' => $pagination,
'filtre' => "Région : $region "
#[Route('/etablissements/commune/{code_commune}', name: 'app_commune')]
public function commune(Request $request, PaginatorInterface $paginator, EtablissementRepository $etablissementRepository): Response
$code_commune = $request->get('code_commune');
$commune = $etablissementRepository->findCommuneByCode($code_commune);
$queryBuilder = $etablissementRepository->queryFindOrderedByCategorie(['code_commune' => $code_commune]);
$pagination = $paginator->paginate(
$queryBuilder,
$request->query->getInt('page', 1),
10
);
return $this->render('etablissement/liste.html.twig', [
'pagination' => $pagination,
'filtre' => "Commune : $commune "

G. Daryl M. OKOU
a validé
]);
}
#[Route('/etablissements/{id<\d+>}', 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,
]);
}
#[Route('/etablissements/new', name: 'etablissement_new', methods: ['GET', 'POST'])]
public function new(Request $request, EntityManagerInterface $entityManager): Response
{
$etablissement = new Etablissement();
$form = $this->createForm(EtablissementType::class, $etablissement);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$entityManager->persist($etablissement);
$entityManager->flush();
return $this->redirectToRoute('app_etablissements'); // Redirection vers la liste des établissements
}
return $this->render('etablissement/new.html.twig', [
'form' => $form->createView(),
]);
}
Glody Kutumbakana
a validé
#[Route('/etablissements/{id}/edit', name: 'etablissement_edit', methods: ['GET', 'POST'])]
public function edit(Request $request, EntityManagerInterface $entityManager, EtablissementRepository $etablissementRepository, int $id): Response
{
$etablissement = $etablissementRepository->find($id);
$form = $this->createForm(EtablissementType::class, $etablissement);
$form->handleRequest($request);
Glody Kutumbakana
a validé
Glody Kutumbakana
a validé
if ($form->isSubmitted() && $form->isValid()) {
Glody Kutumbakana
a validé
Glody Kutumbakana
a validé
$entityManager->flush();
return $this->redirectToRoute('app_etablissements'); // Redirection vers la liste des établissements
}
return $this->render('etablissement/edit.html.twig', [
Glody Kutumbakana
a validé
'form' => $form->createView(), 'id' => $id
Glody Kutumbakana
a validé
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
]);
}
#[Route('/etablissements/{id}/confirm_delete', name: 'etablissement_confirm_delete', methods: ['GET' , 'POST'])]
public function comfirm_delete(Request $request, EntityManagerInterface $entityManager, EtablissementRepository $etablissementRepository, int $id): Response
{
$etablissement = $etablissementRepository->find($id);
if (!$etablissement) {
throw $this->createNotFoundException('Etablissement n\'exite pas.');
}
return $this->render('etablissement/remove.html.twig', [
'etablissement' => $etablissement,
]);
}
#[Route('/etablissements/{id}/delete', name: 'etablissement_delete', methods: ['GET' , 'POST'])]
public function delete(Request $request, EntityManagerInterface $entityManagerInterface , EtablissementRepository $etablissementRepository , int $id): Response
{
if($this->isCsrfTokenValid('delete'.$id, $request->request->get('_token'))){
$etablissement = $etablissementRepository->find($id);
$entityManagerInterface->remove($etablissement);
$entityManagerInterface->flush();
}
return $this->redirectToRoute('app_etablissements');
}