Bonjour, je voudrais pouvoir afficher mes erreurs de validation de mon entité User qui bien sur hérite du bundle FosUserBundle
Je redéfinie mon Controleur RegistrationControler ne ajoutant à l'action RegisterAction ces quelque ligne ci-dessous:
Mon var_dump revoie ceci, c'est a dire vide:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 $validator = $this->container->get('validator'); $errors = $validator->validate($user); var_dump($errors);
Mais aucune erreur de validation n'apparaissent, je dois supprimer la balise option donc ce qui concerne la validation group afin d'avoir au moins l'erreur de l'username si celui-ci n'est pas renseigner lors de la saisie:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 object(Symfony\Component\Validator\ConstraintViolationList)[540] private 'violations' => array (size=0) empty
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4<option name="groups"> <value>Registration</value> <value>Profile</value> </option>
Et maintenant mon var_dump renvoie bien une violation:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <property name="username"> <constraint name="NotBlank"> <option name="message">fos_user.username.blank</option> <option name="groups"> <value>Registration</value> <value>Profile</value> </option> </constraint>Pour info les erreurs apparaissent bien au dessus de chaque champ adéquate si j'affiche mon formulaire sous forme de form_row(form.username), mais je veut utilisé les validator pour pouvoir customisé les erreur à ma guise.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 object(Symfony\Component\Validator\ConstraintViolationList)[893] private 'violations' => array (size=1) 0 => object(Symfony\Component\Validator\ConstraintViolation)[1024] private 'message' => string 'Entrez un nom d'utilisateur s'il vous plait' (length=43) private 'messageTemplate' => string 'fos_user.username.blank' (length=23) private 'messageParameters' => array (size=0) ... private 'messagePluralization' => null private 'root' => object(Backend\UserBundle\Entity\User)[1597] ... private 'propertyPath' => string 'username' (length=8) private 'invalidValue' => null private 'code' => null
De plus les fichiers de validation de FosUserBundle sont toujours a leur place respective dans leur Bundle.
Avez vous une idée les amis pour ceux qui utilisent FosUerBundle en profondeur
Partager