Commits (4)
......@@ -18,17 +18,19 @@ final class EtablissementController extends AbstractController
#[Route('/etablissements', name: 'app_etablissements')]
public function index(Request $request, PaginatorInterface $paginator, EtablissementRepository $etablissementRepository): Response
{
$queryBuilder = $etablissementRepository->queryFindOrderedByName();
$search = $request->query->get('search'); // Récupération du terme de recherche
$queryBuilder = $etablissementRepository->queryFindOrderedByName($search); // On passe le mot-clé au repository
$pagination = $paginator->paginate(
$queryBuilder,
$request->query->getInt('page', 1),
10
);
return $this->render('etablissement/index.html.twig', [
'pagination' => $pagination,
'filtre' => 'Tous les établissements'
'filtre' => $search ? "Résultats pour : $search" : "Tous les établissements",
'search' => $search, // On renvoie la valeur pour pré-remplir le champ de recherche
]);
......
......@@ -66,6 +66,20 @@ class EtablissementRepository extends ServiceEntityRepository
->getSingleScalarResult();
}
public function queryFindOrderBy(?string $search = null)
{
$queryBuilder = $this->createQueryBuilder('e');
if ($search) {
$queryBuilder
->where('e.nom LIKE :search')
->setParameter('search', '%' . $search . '%');
}
return $queryBuilder->orderBy('e.nom', 'ASC')->getQuery();
}
public function findRegionByCode(string $code): string
{
return $this->createQueryBuilder('e')
......
......@@ -38,7 +38,10 @@
{% else %}
<p>Aucun commentaire pour cet établissement.</p>
{% endfor %}
<a href="{{ path('commentaire_new', {'id': etablissement.id}) }}" class="btn btn-primary mt-3">Laisser un commentaire</a>
<div>
<a href="{{ path('commentaire_new', {'id': etablissement.id}) }}" class="btn btn-primary mt-3">Laisser un commentaire</a>
<div>
<a href="{{ path('app_etablissements') }}" class="btn btn-secondary mt-3">Retour à la liste des établissements</a>
</div>
</div>
{% endblock %}
......@@ -17,6 +17,12 @@
<div class="example-wrapper">
<!-- Bouton pour ajouter un établissement -->
<a href="{{ path('etablissement_new') }}" class="btn-ajouter">➕ Ajouter un établissement</a>
{# Formulaire de recherche #}
<form method="GET" action="{{ path('app_etablissements') }}" class="mb-3">
<input type="text" name="search" value="{{ search }}" class="form-control" placeholder="Rechercher un établissement...">
<button type="submit" class="btn btn-primary mt-2">Rechercher</button>
</form>
<h1> Liste de tous les etablissements:</h1>
<table>
<tr>
......
......@@ -18,9 +18,15 @@
<li aria-label="Coordonnées géographiques">🌐 Latitude : {{ etablissement.latitude }} - Longitude : {{ etablissement.longitude }}</li>
</ul>
<h3>Commentaires</h3>
<div>
<a href="{{ path('show_commentaires', {'id':etablissement.id}) }}">Voir les commentaires</a>
<div>
<a href="{{ path('commentaire_new', {'id': etablissement.id}) }}" class="btn btn-primary mt-3">Laisser un commentaire</a>
</div>
<div>
<a href="{{ path('app_etablissements') }}" class="btn btn-secondary mt-3">Retour à la liste des établissements</a>
</div>
</div>
</div>
{% endblock %}
\ No newline at end of file