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 ?

"` //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

1 réponse


Tu devrais pouvoir t'en sortir avec la contrainte when.