Aller au contenu principal

Validation des données

Comment valider les données avant de les enregistrer dans la base de données

Notions théoriques

La validation est un aspect crucial de toute application Web. Symfony fournit un composant puissant pour valider les données en utilisant une série de contraintes de validation qui peuvent être appliquées à vos entités.

Par exemple, si vous voulez vous assurer que le nom d'un joueur n'est pas vide et ne dépasse pas 100 caractères, vous pouvez utiliser les contraintes NotBlank et Length sur la propriété name de l'entité Player.

Exemple de mise en application

Modifions notre entité Player pour ajouter des contraintes de validation à la propriété name :

use Symfony\Component\Validator\Constraints as Assert;

// ...

#[Assert\NotBlank]
#[Assert\Length(max: 100)]
private string $name;

Maintenant, lorsque vous essayez de soumettre un formulaire pour créer ou mettre à jour un joueur avec un nom vide ou trop long, Symfony affichera un message d'erreur.

Test de mémorisation/compréhension


Pourquoi la validation des données est-elle importante ?


Comment ajoute-t-on des contraintes de validation à une entité dans Symfony ?


Quelle contrainte de validation utilise-t-on pour vérifier qu'une valeur n'est pas vide dans Symfony ?


Quelle contrainte de validation utilise-t-on pour vérifier la longueur d'une chaîne de caractères dans Symfony ?



TP pour réfléchir et résoudre des problèmes

Votre défi pour aujourd'hui consiste à ajouter des contraintes de validation à l'entité Character

Assurez-vous que le nom du personnage :

  • n'est pas vide
  • et ne dépasse pas 100 caractères.

Bonne pratique - Valider les données au niveau de l'entité

Placer les contraintes de validation directement sur les propriétés de l'entité garantit que les règles s'appliquent partout dans l'application, quel que soit le formulaire ou le point d'entrée qui crée ou modifie la ressource. Cela évite de dupliquer la logique de validation dans chaque contrôleur ou service et centralise les règles métier au plus près de la donnée.

Une solution