Bonjour Antonin,
alors tu as plusieurs méthodes pour faire cela.
La première, directement depuis une entité (pas optimisée)
- Exemple depuis une région
Le problème avec cette méthode c'est que doctrine (j'imagine que c'est l'ORM que tu utilises) va générer un tas de requêtes SQL dans ton dos ^^. Et vu le type de données que tu manipules, ce nombre va très rapidement augmenté.
Seconde méthode, depuis ton repository (plus obtimisé)
Avec cette méthode, tu vas devoir écrire ta requête (et utiliser les jointures) pour pouvoir récupérer toutes tes annonces en une seule fois.
- Exemple, récupérer toutes les annonces pour une région donnée
Depuis ton repository Annonce, tu vas créer une méthode getAnnoncesByRegion($region_id)
Avec cette méthode, tu récupères alors une collection d'entité Annonce qui sont propres à une région.
Pour les autres cas, tu peux imaginer des méthodes du genre getAnnoncesByDepartement($departement_id), getAnnoncesByVille($ville_id), ....
Voilà, j'espère avoir pu t'aider
++