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 :

Validation des formulaires [2.x]


Sujet :

Symfony PHP

  1. #1
    Membre éclairé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    772
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2004
    Messages : 772
    Points : 872
    Points
    872
    Par défaut Validation des formulaires
    Bonjour,

    Je me pose une question sur le choix fait par l'équipe développant Symfony2 à propos de la validation des formulaires :

    - Il semble que le service de validation de formulaire ne fonctionne qu'en récupérant les contraintes appliquées aux entités. Un formulaire non mappé sur une entité ne peut bénéficier de la facilité de validation que procure le service de validation...

    Suis-je dans le vrai ou ai-je loupé quelque chose ?

    De mon côté, j'aimerais pouvoir créer un formulaire, sans le mapper à une entité en particulier (ça ok, ça marche), mais également définir des contraintes de validation sur les champs du formulaire lui-même, et non sur les propriétés d'une entité.

    Avez-vous été confronté à ce problème ?
    • Mon blog PHP : http://blog.alterphp.com
    • "Peace cannot be kept by force, it can only be achieved by Understanding" -- Albert Einstein

  2. #2
    Inscrit
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    319
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 319
    Points : 476
    Points
    476
    Par défaut
    Tu es heureusement dans le faux :p

    Un formulaire n'a pas besoin d'une entite, mais d'une classe quelconque. Et la validation peut s'appliquer a une classe quelconque et pas forcement a une entite. Par transitivite, tu peux valider un formulaire non lie a une entite.

    Par contre la validation se fait toujours sur les proprietes d'un objet. Tu ne valides pas ton formulaire, mais ton objet. Mais tu peux avoir un objet Contact qui contient une propriete email et une propriete texte, tu valides ces 2 proprietes, et tu construis ton formulaire sur cette classe. Au final, c'est comme si tu validais le formulaire !

  3. #3
    Membre éclairé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    772
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2004
    Messages : 772
    Points : 872
    Points
    872
    Par défaut
    Hum hum

    Je suis têtu mais j'aime aller au bout de mes réflexions

    D'après ce que tu dis, je peux appliquer mes contraintes de validation sur n'importe quel objet PHP. Comme je ne souhaite pas définir une nouvelle entité, je dois pouvoir les affecter directement sur des propriétés de mon formulaire lui-même ?

    Voici la classe dans laquelle je décris les champs de mon formulaire :

    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
    <?php
     
    namespace MyCompany\SellerBundle\Form;
     
    use Symfony\Component\Form\AbstractType;
    use Symfony\Component\Form\FormBuilder;
     
    class MyCompanyRegistrationType extends AbstractType
    {
     
       public function buildForm(FormBuilder $builder, array $options)
       {
          $builder
             ->add('fullname', 'text')
             ->add('email', 'text')
             ->add('phoneNumber', 'text')
             ->add('password', 'password')
             ->add('passwordConfirm', 'password')
             ->add('registrationType', 'choice', array(
                     'choices' => array('1' => 'az', '2' => 'ebay'),
                     'expanded' => true))
             ->add('newsletter', 'checkbox', array(
                     'required' => false
             ))
             ->add('partnerMail', 'checkbox', array(
                     'required' => false
             ))
             ->add('termsAndConditionApproval1', 'checkbox')
          ;
       }
     
    }
    Je ne peux pas définir des contraintes directement sur cette classe, il faut que je crée un objet mappant mon Form ?? En gros il me faut une pseudo-entité qui définit les contraintes ?
    • Mon blog PHP : http://blog.alterphp.com
    • "Peace cannot be kept by force, it can only be achieved by Understanding" -- Albert Einstein

  4. #4
    Membre actif

    Homme Profil pro
    Inscrit en
    Janvier 2009
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2009
    Messages : 91
    Points : 223
    Points
    223
    Par défaut
    Disons qu'il faudrait créer un Model afin d'y placer tes règles de validation.

    Bon le lien suivant est un peu outdated mais peut te servir de base :

    https://github.com/GromNaN/ContactBundle

  5. #5
    Membre éclairé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    772
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2004
    Messages : 772
    Points : 872
    Points
    872
    Par défaut
    Merci

    J'ai créé une classe ne contenant que les champs (propriétés en public) de mon form, et je peux ainsi le valider...

    C'est un peu lourd je trouve de devoir créer une classe juste pour ça mais bon... on ne peut pas vraiment se plaindre de devoir utiliser les bonnes pratiques imposées par un framework. C'est le jeu ma pauv' Lucette !
    • Mon blog PHP : http://blog.alterphp.com
    • "Peace cannot be kept by force, it can only be achieved by Understanding" -- Albert Einstein

  6. #6
    Membre actif

    Homme Profil pro
    Inscrit en
    Janvier 2009
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2009
    Messages : 91
    Points : 223
    Points
    223
    Par défaut
    Je trouve aussi cela un peu lourd mais pas autant que d'effectuer les validations soi-même. Mais ne nous plaignons pas encore maintenant pas mal de choses peuvent encore venir.

  7. #7
    Membre actif

    Homme Profil pro
    Inscrit en
    Janvier 2009
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2009
    Messages : 91
    Points : 223
    Points
    223
    Par défaut
    Je te mets ici deux liens ici concernant la validation de formulaire à la volée, utile si tu utilises des array à la place des objets :

    https://github.com/symfony/symfony/c...15b57bfbae3aad

    https://groups.google.com/forum/#!to...rs/gOFFPQhGEwI

  8. #8
    Membre à l'essai
    Homme Profil pro
    Ingénieur informatique
    Inscrit en
    Juillet 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2011
    Messages : 12
    Points : 11
    Points
    11
    Par défaut
    J'ai pu tester de faire des formulaires sans entités ou modèle mappé au form et je peux dire qu'il n'y a pas besoin d'entité ou modèle pour que la validation se fasse.

    Après peut être que dans des formulaires plus avancée c'est autre chose.

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

Discussions similaires

  1. [2.x] Avis sur la validation des formulaires
    Par stephan.78 dans le forum Symfony
    Réponses: 2
    Dernier message: 13/12/2012, 12h32
  2. [2.x] fournir et valider des formulaires par webservices
    Par david42 dans le forum Symfony
    Réponses: 3
    Dernier message: 01/03/2012, 09h11
  3. Struts2 et la validation des formulaires
    Par Fichman dans le forum Struts 2
    Réponses: 16
    Dernier message: 13/06/2008, 16h10
  4. [ Struts ] Validation des formulaires
    Par jeoff dans le forum Struts 1
    Réponses: 2
    Dernier message: 28/07/2006, 12h43
  5. Classe ou script de validation des formulaires.
    Par __fabrice dans le forum Langage
    Réponses: 22
    Dernier message: 30/12/2005, 10h26

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