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 :

Ajouter une constraints NotBlank pour l'ensemble des champs d'un form et non un a un


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2015
    Messages
    518
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juillet 2015
    Messages : 518
    Par défaut Ajouter une constraints NotBlank pour l'ensemble des champs d'un form et non un a un
    Bonjour,

    Comment ajouter la constraints NotBlank pour l'ensemble des champs d'un formulaire ?

    Voici mon form :

    Code php : 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 App\Form;
     
    use Symfony\Component\Form\AbstractType;
    use Symfony\Component\Form\FormBuilderInterface;
    use Symfony\Component\Validator\Constraints\NotBlank;
    use Symfony\Component\OptionsResolver\OptionsResolver;
    use Symfony\Component\Form\Extension\Core\Type\TextType;
    use Symfony\Component\Form\Extension\Core\Type\EmailType;
    use Symfony\Component\Form\Extension\Core\Type\TextareaType;
     
    class ContactType extends AbstractType
    {
        public function buildForm(FormBuilderInterface $builder, array $options): void
        {
            $builder
                ->add('firstName', TextType::class)
                ->add('lastName', TextType::class)
                ->add('email', EmailType::class)
                ->add('subject', TextType::class)
                ->add('message', TextareaType::class)
            ;
        }
     
        public function configureOptions(OptionsResolver $resolver): void
        {
            $resolver->setDefaults([
                'translation_domain' => 'forms',
            ]);
        }
    }

    J'ai essayé d'ajouter ce code dans le setDefaults mais aucun effet ! En revanche ce code fonctionne très bien si je l'ajoute a chacun des champs...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    'constraints' => [
                        new NotBlank([
                            'message' => 'Mon message',
                        ]),
                    ],
    des idées ? et dans la doc symfony je n'ai rien trouvé sur comment ajouter cela a l'ensemble des champs (étrange ?)

    merci.

  2. #2
    Membre Expert

    Homme Profil pro
    développeur
    Inscrit en
    Octobre 2013
    Messages
    1 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : développeur

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 583
    Par défaut
    Hello,

    Jamais vue non plus.
    Question pourquoi n'utilise tu pas les assertions sur ton dto ou entité plutôt que le form ?
    Pour moi cela permet d'avoir la validation hors formulaire et donc d'être réutilisable.
    Simple avis.

  3. #3
    Membre éclairé
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2015
    Messages
    518
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juillet 2015
    Messages : 518
    Par défaut
    Salut,

    pas possible car je n'ai pas d'entité ! Je trouve inutile d'avoir une entité pour un formulaire de contact.. donc j'ai uniquement mon controleur et mon formType puis bien-sur la vue twig !

Discussions similaires

  1. [WD19] Ajouter une procédure à l'ensemble des champs de saisie
    Par neptunia dans le forum WinDev
    Réponses: 4
    Dernier message: 11/06/2014, 13h36
  2. Réponses: 3
    Dernier message: 19/10/2007, 14h32
  3. Une bibliothèque portable pour la gestion des dlls (plug-ins)
    Par Spartan03 dans le forum Bibliothèques
    Réponses: 4
    Dernier message: 20/11/2006, 19h33
  4. Réponses: 1
    Dernier message: 30/06/2006, 16h01

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