Post

Symfony – Traiter un formulaire

Symfony – Traiter un formulaire

Cours 22 — Traiter un formulaire

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()
This post is licensed under CC BY 4.0 by the author.