IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

erreur validation formulaire FosUserBundle


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    508
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 508
    Par défaut erreur validation formulaire FosUserBundle
    Bonjour, petit soucie de formulaire FosUserBundle

    Donc voila quand j'enregistre un nouvelle utilisateur via mon formulaire d' enregistrement (methode registerAction()), je voudrais qu'après soumission du formulaire récupérer les erreurs :

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
        
          public function registerAction(Request $request)
        {
            $errors= null;
            /** @var $formFactory \FOS\UserBundle\Form\Factory\FactoryInterface */
            $formFactory = $this->container->get('fos_user.registration.form.factory');
            /** @var $userManager \FOS\UserBundle\Model\UserManagerInterface */
            $userManager = $this->container->get('fos_user.user_manager');
            /** @var $dispatcher \Symfony\Component\EventDispatcher\EventDispatcherInterface */
            $dispatcher = $this->container->get('event_dispatcher');
    
            $user = $userManager->createUser();
            $user->setEnabled(true);
    
            $event = new GetResponseUserEvent($user, $request);
            $dispatcher->dispatch(FOSUserEvents::REGISTRATION_INITIALIZE, $event);
    
            if (null !== $event->getResponse()) {
                return $event->getResponse();
            }
    
            $form = $formFactory->createForm();
            $form->setData($user);
    
               
            if ('POST' === $request->getMethod()) {
           
                $form->bind($request);
                     
                  var_dump($form->getErrors());exit;
                  var_dump($form->getErrorsAsString());exit;
    
                if ($form->isValid()) {
                    
                      
                    $event = new FormEvent($form, $request);
                    $dispatcher->dispatch(FOSUserEvents::REGISTRATION_SUCCESS, $event);
    
                    $userManager->updateUser($user);
    
       
                    if (null === $response = $event->getResponse()) {
                        $url = $this->container->get('router')->generate('fos_user_registration_confirmed');
                        $response = new RedirectResponse($url);
                    }
    
                    $dispatcher->dispatch(FOSUserEvents::REGISTRATION_COMPLETED, new FilterUserResponseEvent($user, $request, $response));
    
                    return $response;
                }else{
    
                       $validator = $this->container->get('validator');
                       $errors = $validator->validate($user);
                       var_dump($errors);exit;
                  }
                
            }
    
            return $this->container->get('templating')->renderResponse('FOSUserBundle:Registration:register.html.'.$this->getEngine(), array(
                'form' => $form->createView(),
            ));
        }
    alors je me trouve face à une mascarade, quand je fais un var_dump de $form->getErrors(), il y a aucune erreur pourtant OUI il y a bien des erreurs car je ne peut pas valider (methode isValid() ) et le var_dump de getErrorsAsString() me renvoye bien mes erreurs.

    De plus si j'utilise le code ci dessous

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
             $validator = $this->container->get('validator');
                       $errors = $validator->validate($user);
                       var_dump($errors);exit;
    aucune erreur egalement

    Une idée les amis

    Merci

  2. #2
    Membre extrêmement actif
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Par défaut
    salut jean paul,

    bon pour ton soucis, quel genre d'erreur tu as ?
    c'es pas un problème de CRSF ?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    508
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 508
    Par défaut re
    non pas CRSF

    dans mes autres formulaires je peux manipuler mes erreurs comme bon me semble, avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $validator = $this->container->get('validator');
                       $errors = $validator->validate($user);
                       var_dump($errors);exit;
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      var_dump($form->getErrors());exit;
    [/CODE]

    je veux afficher mes erreur en utilisant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
              $validator = $this->container->get('validator');
                       $errors = $validator->validate($user);
                       var_dump($errors);exit;
    mais ca me renvoie

    array (size=0)
    empty

    alors que avec

    var_dump($form->getErrorsAsString());exit;

    j'ai bien
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    string 'nom:
        No errors
    prenom:
        No errors
    adrfacturation:
        No errors
    codeadrf:
        No errors
    villeadrf:
        No errors
    adrlivraison:
        No errors
    codeadrl:
        No errors
    villeadrl:
        No errors
    email:
        ERROR: L'adresse e-mail est déjà utilisée
    username:
        No errors
    plainPassword:
        first:
            No errors
        second:
            No errors
    news:
        No errors
    ' (length=371)
    Comprend tu on je veux en venir, je veux pas corriger mes erreur elle sont volontaire pour l'exmple, je veux le manipuler pour ensuite afficher comme bon me semeble dans mon template.

    Merci l'ami

  4. #4
    Membre Expert Avatar de Nico_F
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2011
    Messages : 728
    Par défaut
    Un petit dump de l'objet $validator aussi stp ?

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    508
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 508
    Par défaut re
    voila l'ami

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    object(Symfony\Component\Validator\ConstraintViolationList)[506]
      private 'violations' => 
        array (size=0)
          empty
    Merci

  6. #6
    Membre Expert Avatar de Nico_F
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2011
    Messages : 728
    Par défaut
    Intéressant : ton $validator n'est pas une instance d'une classe Validator. :/

    Tu as copié tout le dump ou uniquement la partie des violations ? Parce que si tu as tout dumpé la méthode validate() ne devrait même pas être accessible.

    Dans le doute et pour éviter de creuser des pistes inutilement : quelle est la version de Symfony que tu utilises ?

  7. #7
    Membre émérite
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2011
    Messages : 725
    Par défaut
    Bonjour,

    As tu regardé du coté des groupes de validation
    http://symfony.com/fr/doc/current/bo...-de-validation

    Le FOSUserBundle utilise plusieurs groupe de validation.
    https://github.com/FriendsOfSymfony/...validation.xml

  8. #8
    Membre Expert Avatar de Nico_F
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2011
    Messages : 728
    Par défaut
    Hello, si le getErrorsAsString() te renvoie bien tes erreurs, peux-tu nous les montrer stp ?

Discussions similaires

  1. Erreur validation de formulaire
    Par cecjmii dans le forum Access
    Réponses: 4
    Dernier message: 20/03/2015, 17h23
  2. Réponses: 6
    Dernier message: 24/04/2013, 17h14
  3. erreur validation formulaire
    Par lolie dans le forum ASP.NET MVC
    Réponses: 1
    Dernier message: 09/10/2011, 02h20
  4. Validation formulaire message erreur
    Par fouf_01 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 18/05/2009, 08h52
  5. gestion des erreurs (validation de formulaires)
    Par mattyeux dans le forum Ruby on Rails
    Réponses: 6
    Dernier message: 26/11/2007, 07h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo