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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 772
    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 ?

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

    Informations forums :
    Inscription : Décembre 2004
    Messages : 319
    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 émérite

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 772
    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 ?

  4. #4
    Membre éprouvé

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

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2009
    Messages : 91
    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 émérite

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 772
    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 !

  6. #6
    Membre éprouvé

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

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2009
    Messages : 91
    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.

+ 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