Lorsqu’on crée des formulaires sur Symfony, comme par exemple un formulaire pour se créer un compte. Plusieurs règles sont implémentés soit sur le html du formulaire soit en PHP directement dans le controller. Avec Symfony, il y a mieux… Le Validateur.
Installation
Pour l’installer, on va utiliser notre célèbre outil composer
composer require symfony/validator doctrine/annotations
Exemple
Pour notre l’exemple, on va créer des utilisateurs simples via un formulaire d’inscription.
Avec son FormType
Avec son controlleur
Et enfin la vue du formulaire
Utilisation
Désormais, on va ajouter les validateurs pour nos deux champs (firstname et email) :
- Email : Validateur Symfony pour les emails
- FirstName : Validateur que je crée
Lorsqu’on soumettra le formulaire, si le champ firstName n’est pas égal à “Gary” et / ou le champ email ne comporte pas un email valide. La variable isValid de l’objet FormType sera à false.
Autre méthode : Si vous faites une Api ou vous n’utilisez pas de formulaire, vous pouvez injecter dans la fonction un ValidateurInterface qui valide l’objet à n’importe quel moment.
Essayons cela avec un test fonctionnel sur les validateurs
Désormais, vous savez utiliser et créer des validateurs sur vos projets.
Bonjour,
Merci pour votre article.
Est-il possible d’ajouter un niveau de gravité comme par exemple “Attention” ou “Erreur” ?
Je veux ajouter ce type de gravité avec une couleur associé dans mon template.
Original Message :
Bonjour,
Oui tu le peux, avec l’option payload : https://symfony.com/doc/current/validation/severity.html