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 :

Contrainte validation champ de formulaire avancée


Sujet :

Symfony PHP

  1. #1
    Membre actif
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 092
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 092
    Points : 268
    Points
    268
    Par défaut Contrainte validation champ de formulaire avancée
    Bonjour, je cherche à savoir si il est possible directement dans le formulaire de pouvoir implémanter une contrainte si un autre champ n'est pas vide...

    Je voudrais que si le champ A est rempli alors le remplissage du champ B devienne obligatoire...

    Voici le code qui fonctionne avec une seule contrainte pour l'instant, reste à y ajouter une contrainte permettant d'obliger au remplissage du champ lundi_matin_fin si lundi_matin_debut existe déjà... Il me semble que l'on doit pouvoir le faire sans custom validator et directement dans le 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
    //LUNDI           
                ->add('lundi_matin_debut', null, [
                    'attr' => ['class' => 'select-horaire'],
                    'widget' => 'choice',
                    'hours' => range(0, 23),
                    'minutes' => $tblMinutes,
                    'required' => false,
                    'attr' => ['class' => 'select-horaire'],
                    'invalid_message' => "Veuillez rentrez une heure ou laisser le champ vide.",
                    'constraints' => [
                        new LessThan(['propertyPath' => 'parent.all[lundi_apres_midi_fin].data', 'message' => 'Une heure de début ne peut être supérieure ou égale à l\'heure de fin !']),
     
                    ]
     
                ])
     
                ->add('lundi_matin_fin', TimeType::class, [
                    'widget' => 'choice',
                    'hours' => range(0, 23),
                    'minutes' => $tblMinutes,
                    'empty_data' => '09:00:00',
                    'required' => false,
                    'attr' => ['class' => 'select-horaire'],
                    'invalid_message' => "Veuillez rentrez une heure ou laisser le champ vide.",
                    'constraints' => [
                        new GreaterThan(['propertyPath' => 'parent.all[lundi_matin_debut].data', 'message' => 'Une heure de fin ne peut être inférieure ou égale à l\'heure de départ !']),
     
                    ]
                ])
    Merci d'avance pour vos conseils

  2. #2
    Membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mars 2023
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2023
    Messages : 31
    Points : 47
    Points
    47
    Par défaut
    Oui, vous pouvez ajouter une contrainte "NotBlank" au champ "lundi_matin_fin" pour le rendre obligatoire si "lundi_matin_debut" a une valeur. Vous pouvez le faire en utilisant la méthode "add" du FormBuilder :

    Avec cette modification, le champ "lundi_matin_fin" sera marqué comme obligatoire si "lundi_matin_debut" a une valeur et si l'utilisateur essaie de soumettre le formulaire sans remplir ce champ, il recevra un message d'erreur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    ->add('lundi_matin_fin', TimeType::class, [
                    'widget' => 'choice',
                    'hours' => range(0, 23),
                    'minutes' => $tblMinutes,
                    'empty_data' => '09:00:00',
                    'required' => false,
                    'attr' => ['class' => 'select-horaire'],
                    'invalid_message' => "Veuillez rentrez une heure ou laisser le champ vide.",
                    'constraints' => [
                        new GreaterThan(['propertyPath' => 'parent.all[lundi_matin_debut].data', 'message' => 'Une heure de fin ne peut être inférieure ou égale à l\'heure de départ !']),
                        new NotBlank(['message' => 'Veuillez remplir ce champ si une heure de début est renseignée.'])
                    ]
                ])

  3. #3
    Membre actif
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 092
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 092
    Points : 268
    Points
    268
    Par défaut
    Merci chatGpt d'avoir répondu, cependant, je ne comprends pas la logique :

    En quoi en mettant à NotBlank le champ en question, une vérification s'effectuerait au niveau du champ antérieur si il n'existe aucune référence à celui-ci, contrairement à la contrainte GreaterThan qui elle, la renseigne ?

    Peut-on ajouter "['propertyPath' => 'parent.all[lundi_matin_debut].data', 'message'" comme dans GreaterThan ?

    Merci

Discussions similaires

  1. Validation champs de formulaire au fur et à mesure
    Par M4itreG dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 29/07/2014, 11h50
  2. Tableau champs de formulaire a valider en javascript
    Par cd090580 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 25/08/2007, 18h52
  3. Empêcher la validation d'un formulaire si champs à vide
    Par ghohm dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 16/07/2007, 17h21
  4. validation champs formulaire
    Par jcaspar dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 04/04/2007, 13h03
  5. Validation de champs ds formulaire
    Par fikou dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 09/03/2006, 14h57

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