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 :

[Form] Validation de formulaires imbriqués non fonctionnelle


Sujet :

Symfony PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 8
    Points : 3
    Points
    3
    Par défaut [Form] Validation de formulaires imbriqués non fonctionnelle
    Bonjour,

    Y a-t-il un moyen d'appliquer les validateurs attachés à des formulaires inclus dans un autre?

    J'ai des embed forms inclus dans un formulaire parent, je gère mes règles de validation via la méthode getDefaultOptions en remplissant la clé validation_constraint du tableau retourné.

    Or seul les contraintes appliquées au parent sont appliquées, celles des enfants sont tout bonnement ignorées, bien que symfony rentre bien dans la fonction (un petit die permet de le vérifier).

    Est-ce un problème connu et quelqu'un a-t-il une solution à ce problème?

    Merci

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    J'ai quelques éléments de réponse à moi même mais si quelqu'un pouvait compléter cela me serait d'une grande aide.

    Il semblerait que la non-validation des forms embed dans un formulaire parent est un comportement normal (it's not a bug, it's a feature). D'après les infos que j'ai pu trouver, il faut valider les sous-formulaires par le biais de l'annotation attaché à l'attribut concerné.

    Cependant, ça ne règle pas vraiment mon problème. Puisque je génère mes formulaires dynamiquements, je ne peux pas déclarer mes validateurs via les annotations (ni même la fonction static loadValidatorMetadata). Je ne peux que passer par la fonction getDefaultOptions et remplir la clé validation_constraint avec une Collection de Constraint. Or si je veux ajouter la Contrainte "new Valid()" à mes champs embed pour indiquer à sf de valider le child, cela ne marche pas car la contrainte Valid n'a pas de Validator associé.

    Quelqu'un aurait-il une idée pour me sauver la vie? (et est-ce que ce que je raconte est a peu près clair?)

    Merci

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 109
    Points : 48
    Points
    48
    Par défaut VAdilation embedded form
    En tous cas merci de ta réponse..
    pour mon cas ou j'utilise des formulaires statiques et :

    * @Assert\Valid()

    fonctionne et exécute bien les règles de validation des entities embarquées

Discussions similaires

  1. [2.x] [Form] ACL et formulaires imbriqués
    Par alx69440 dans le forum Symfony
    Réponses: 0
    Dernier message: 12/04/2013, 23h31
  2. [2.x] [Form] Validation de formulaire imbriqué
    Par dukoid dans le forum Symfony
    Réponses: 12
    Dernier message: 02/04/2013, 22h36
  3. [2.x] [Form] Personnalisation des formulaires imbriqués
    Par FadeToBlack dans le forum Symfony
    Réponses: 10
    Dernier message: 20/03/2013, 17h55
  4. Formulaire non fonctionnel
    Par robert_trudel dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 11/12/2006, 04h17
  5. Valider un formulaire par un lien et non par un bouton
    Par budiste dans le forum Langage
    Réponses: 2
    Dernier message: 14/12/2005, 11h58

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