Introduction
Après l’affichage du formulaire, le contrôleur doit traiter les données saisies par l’utilisateur.
Symfony fournit plusieurs méthodes pour effectuer ce traitement.
Récupérer les données
1
| $form->handleRequest($request);
|
Cette méthode récupère les données envoyées par le formulaire.
Vérifier la soumission
1
2
3
| if ($form->isSubmitted()) {
}
|
Résultat :
1
| Le formulaire a été envoyé.
|
Vérifier la validité
1
2
3
4
5
6
| if (
$form->isSubmitted() &&
$form->isValid()
) {
}
|
Résultat :
1
| Le formulaire est envoyé et valide.
|
Exemple complet
1
2
3
4
5
6
7
8
9
10
| $form->handleRequest($request);
if (
$form->isSubmitted() &&
$form->isValid()
) {
// Traitement
}
|
Enregistrer les données
1
2
| $entityManager->persist($patient);
$entityManager->flush();
|
Rediriger l’utilisateur
1
2
3
| return $this->redirectToRoute(
'app_home'
);
|
Exemple complet dans un contrôleur
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| $form = $this->createForm(
PatientFormType::class,
$patient
);
$form->handleRequest($request);
if (
$form->isSubmitted() &&
$form->isValid()
) {
$entityManager->persist($patient);
$entityManager->flush();
return $this->redirectToRoute(
'app_home'
);
}
|
Comprendre le processus
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| Affichage
↓
Saisie utilisateur
↓
handleRequest()
↓
isSubmitted()
↓
isValid()
↓
persist()
↓
flush()
↓
Redirection
|
Conclusion
Pour traiter un formulaire :
- récupérer les données ;
- vérifier la soumission ;
- vérifier la validité ;
- enregistrer les données ;
- rediriger l’utilisateur.
Méthodes à retenir :
1
2
3
4
5
6
| handleRequest()
isSubmitted()
isValid()
persist()
flush()
redirectToRoute()
|