Post

Symfony – Les paramètres de route

Symfony – Les paramètres de route

Cours 2 — Les paramètres de route

Présentation

Les paramètres de route permettent de transmettre des informations depuis l’URL vers le contrôleur.

Grâce à eux, une même route peut servir à afficher des patients différents, des séjours différents ou des avis différents.


Schéma général

1
2
3
4
5
6
7
URL
    ↓
Route
    ↓
Extraction des paramètres
    ↓
Contrôleur

1. Paramètre simple

1
2
3
4
5
#[Route('/patient/{id}', name: 'patient_show')]
public function show(int $id): Response
{
    return new Response("Patient : $id");
}

URL :

1
/patient/12

Résultat :

1
Patient : 12

Comment lire cette route ?

1
/ patient / {id}

Signifie :

1
2
La partie fixe est : patient
La partie variable est : id

Symfony récupère automatiquement la valeur.


2. Plusieurs paramètres

1
2
3
4
5
#[Route('/sejour/{id}/{annee}', name: 'sejour_show')]
public function show(int $id, int $annee): Response
{
    return new Response("$id - $annee");
}

URL :

1
/sejour/15/2026

Résultat :

1
15 - 2026

3. Paramètre texte

1
2
3
4
5
#[Route('/ville/{nom}', name: 'ville_show')]
public function show(string $nom): Response
{
    return new Response($nom);
}

URL :

1
/ville/Anvers

Résultat :

1
Anvers

4. Contraindre un paramètre

Par défaut Symfony accepte tout.

On peut limiter aux nombres :

1
2
3
4
#[Route(
    '/patient/{id<\d+>}',
    name: 'patient_show'
)]

Valide :

1
/patient/12

Invalide :

1
/patient/toto

Pourquoi utiliser une contrainte ?

Pour éviter qu’une URL incorrecte arrive dans le contrôleur.

Symfony bloque l’accès avant même l’exécution du code.


5. Valeur par défaut

1
2
3
4
5
#[Route(
    '/annee/{annee}',
    name: 'annee_show',
    defaults: ['annee' => 2026]
)]

URL :

1
/annee

Résultat :

1
2026

6. Schéma mental :

1
2
3
4
5
URL
 ↓
Paramètre
 ↓
Contrôleur

Conclusion

Les paramètres de route permettent à Symfony de transmettre des informations depuis l’URL vers le contrôleur.

Ils sont utilisés partout dans les applications Symfony, notamment pour afficher, modifier ou supprimer un enregistrement précis.

This post is licensed under CC BY 4.0 by the author.