queryFindOrderedByName(); $pagination = $paginator->paginate( $queryBuilder, $request->query->getInt('page', 1), 10 ); return $this->render('etablissement/index.html.twig', [ 'pagination' => $pagination, 'filtre' => 'Tous les établissements' ]); } #[Route('/etablissements/departement/{code_departement}', name: 'app_departement')] public function departement(Request $request, PaginatorInterface $paginator, EtablissementRepository $etablissementRepository): Response { $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 ); return $this->render('etablissement/liste.html.twig', [ 'pagination' => $pagination, 'filtre' => "Département : $departement " ]); } #[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 ); return $this->render('etablissement/liste.html.twig', [ 'pagination' => $pagination, 'filtre' => "Académie : $academie" ]); } #[Route('/etablissements/region/{code_region}', name: 'app_region')] public function region(Request $request, PaginatorInterface $paginator, EtablissementRepository $etablissementRepository): Response { $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 ); return $this->render('etablissement/liste.html.twig', [ '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 " ]); } #[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, ]); } #[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(), ]); } #[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); if ($form->isSubmitted() && $form->isValid()) { $entityManager->flush(); return $this->redirectToRoute('app_etablissements'); // Redirection vers la liste des établissements } return $this->render('etablissement/edit.html.twig', [ 'form' => $form->createView(), ]); } #[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'); } #[Route('/etablissements/ajouter', name: 'etablissement_create' , methods: ['GET', 'POST'])] public function ajouter(Request $request, EntityManagerInterface $entityManager, EtablissementRepository $etablissementRepository): 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(), ]); } }