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 :

setPostValidator seulement si le form est valide [1.x]


Sujet :

Symfony PHP

Vue hybride

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

    Informations forums :
    Inscription : Mars 2008
    Messages : 162
    Par défaut setPostValidator seulement si le form est valide
    Bonjour,

    Je voulais savoir si c'est normal que l'on rentre dans le "setPostValidator" même si les "validators" des champs ne sont pas bon.

    En gros est il possible de rentrer dans le "setPostValidator" seulement si tous les champs sont ok ?
    Ou alors est il possible de tester dans le "setPostValidator" si le form est valide ou non.

    Merci d'avance

  2. #2
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Dans le déroulement d'un form, il est prévu de tester tous les validateurs avant de renvoyer le formulaire à l'utilisateur.

    Je ne connais pas de manière simple de ne pas tous les valider.

    Vu qu'ils sont déclaré dans des collections, il n'est pas possible de jouer au niveau de configure (ou setup) pour mettre un code conditionnelle qui sera exécuté avant les premiers réels tests de validation.

    La seul possibilité éventuelle que je vois serait de créer un validateur dans l'idée du sfValidatorAnd et de conditionner l'exécution des validateurs inclus à ce que l'objet parent (le form) soit ou non valide. La où j'ai des doutes, c'est sur la possibilité de connaître facilement l'état de la validation d'un formulaire depuis un validateur... A voir...

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 162
    Par défaut
    Merci pour la réponse

    Ce qui est gênant ici c'est que pour un même champ je vais avoir 2 messages d'erreurs :

    1/ celui de mon validateur classique
    2/ celui de mon postvalidateur

  4. #4
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    S'il s'agit de deux erreurs différentes, je ne vois pas où est le problème, c'est des choses qui arrivent régulièrement.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 162
    Par défaut
    De plus dans le postValidator je fait appel à un webervice. Donc même si le champ est incorrect je fais cet appel.

    Dans ce cas je dois donc doubler ma vérification ou alors je dois supprimer le premier validator

  6. #6
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Tu vérifies deux choses différentes, ce qui peut entraîner deux messages d'erreur.

    Si l'utilisateur se trompe, il voit les deux messages d'erreur et sait qu'il a deux contraintes à vérifier. Dans le cas contraire, le risque est qu'il corrige la première contrainte avant d'avoir une deuxième erreur et donc une deuxième modification à mettre en œuvre. Personnellement, c'est le genre de truc qui me fait quitter un site. Deux, si je suis de bonne humeur, cela va, trois emboitées les unes dans les autres, je me tires... Mais je suis un mauvais client.

    Par contre, l’inconvénient est l'appel au web service qui peut être gourmand. Mais d'un autre côté, pour valider le form, même si l'erreur est sur un autre champ, tu feras appel au web service à tous les coups...

    Question, ton postValidateur ne porte que sur un champ ? Si oui, quel est l'intérêt de le mettre en postValidateur ? Pourquoi ne pas faire un sfValidatorAnd dans le validateur du champ ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Pattern][Regex] vérifier que mon email est valide
    Par anitshka dans le forum Collection et Stream
    Réponses: 7
    Dernier message: 23/05/2011, 13h03
  2. test si une Url est valide ?
    Par lulu1664 dans le forum Windows
    Réponses: 5
    Dernier message: 10/08/2005, 09h14
  3. Vérifier si une form est ouverte
    Par nivet dans le forum Langage
    Réponses: 6
    Dernier message: 23/11/2004, 09h17
  4. une interpolation de forme est elle possible
    Par tetsuo chima dans le forum Flash
    Réponses: 3
    Dernier message: 07/10/2003, 16h31
  5. tester si une date est valide
    Par Andry dans le forum Langage
    Réponses: 5
    Dernier message: 17/09/2002, 11h54

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