Symfony 7.4 permet l'utilisation des attributs PHP
Où : directement dans les entités
namespace App\Entity;
use Symfony\Component\Validator\Constraints as Assert;
class Auteur
{
#[Assert\NotBlank]
public string $aut_nom;
#[Assert\NotBlank]
public string aut_prenom;
}
Attributs usuels :
| Attribut | Description |
|---|---|
[#Assert\NotNull] |
Vérifie que la valeur est renseignée. |
[#Assert\NotBlank] |
Vérifie que la valeur n’est pas vide. |
[#Assert\Email] |
Valide le format d’un email. |
[#Assert\Length(min:2, max:50)] |
Contrôle la longueur d’une chaîne. |
[#Assert\Positive] |
Vérifie qu’un nombre est strictement positif. |
[#Assert\Choice(choices: ["M", "F"])] |
Restreint les valeurs possibles. |
[#Assert\Regex(pattern: "/^[A-Za-z]+$/")] |
Valide via une expression régulière. |
Personnalisation des messages d'erreur :
#[Assert\NotBlank(message: "Veuillez saisir un nom d'utilisateur.")]#[Assert\Email(message: "L'email {{ value }} n'est pas valide.")]Validation coté contrôleur : (plus fiable que côté HTML)
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
// la méthode isValid réalise la validation
}
Côté twig : affichage des erreurs possible
{{ form_errors(form) }}
{{ form_widget(form) }}