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:

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);
Mon var_dump revoie ceci, c'est a dire vide:
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
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
<option name="groups">
                    <value>Registration</value>
                    <value>Profile</value>
                </option>
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>
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
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
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.

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