Outils pour utilisateurs

Outils du site


symfony_4:fonctionnement:les_formulaires_gestion_des_formulaires

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
symfony_4:fonctionnement:les_formulaires_gestion_des_formulaires [2018/10/23 10:14]
formateur
symfony_4:fonctionnement:les_formulaires_gestion_des_formulaires [2022/11/08 10:50] (Version actuelle)
admin [Rendu en twig]
Ligne 134: Ligne 134:
 Quelques exemples : Quelques exemples :
 <code PHP> <code PHP>
 +use Symfony\Component\Form\Extension\Core\Type\ResetType;
 +use Symfony\Component\Form\Extension\Core\Type\IntegerType;
 +use Symfony\Component\Form\Extension\Core\Type\NumberType;
 +use Symfony\Component\Form\Extension\Core\Type\EmailType;
 +use Symfony\Component\Form\Extension\Core\Type\TextType;
 +use Symfony\Component\Form\Extension\Core\Type\HiddenType;
 +use Symfony\Component\Form\Extension\Core\Type\FileType;
 use Symfony\Component\Form\Extension\Core\Type\SubmitType; use Symfony\Component\Form\Extension\Core\Type\SubmitType;
  
       ...       ...
 +      
 +      //Ajout du bouton reset
 +      ->add('reset', ResetType::class, array(
 +          'label' => 'Reset'
 +      ));
              
       //Ajout du champ de nombre entier       //Ajout du champ de nombre entier
Ligne 144: Ligne 156:
       ->add('usrMoney', NumberType::class, array(       ->add('usrMoney', NumberType::class, array(
           'attr' => array(           'attr' => array(
-              'disabled' => 'disabled', 
               'class' => 'formNumberField',               'class' => 'formNumberField',
           ),           ),
-          'invalid_message' => 'Merci de rentrer une valeur sous forme de nombre et non de chaine de caractère !'+          'invalid_message' => 'Merci de rentrer une valeur sous forme de nombre !'
 +          'required' => 'required',
       )       )
              
       //Ajout d'un champ mail       //Ajout d'un champ mail
-      ->add('usrEmail', EmailType::class)+      ->add('usrEmail', EmailType::class, array( 
 +          'required' => 'required', 
 +          'invalid_message' => 'Merci de rentrer une adresse mail valide !', 
 +      ))
              
       //Ajout d'un champ text       //Ajout d'un champ text
-      ->add('username', TextType::class)+      ->add('username', TextType::class, array( 
 +          'disabled' => 'disabled', 
 +      ))
              
       //Ajout d'un champ text masqué absent de la classe, juste utile pour la gestion du formulaire       //Ajout d'un champ text masqué absent de la classe, juste utile pour la gestion du formulaire
Ligne 165: Ligne 182:
       ->add('idCard', FileType::class);       ->add('idCard', FileType::class);
              
-      //Ajout d'un champ text +      //Ajout du bouton de soumission du formulaire 
-      ->add('username', TextType::class)+      ->add('save', SubmitType::class, array( 
 +          'label' => 'Ajouter' 
 +      ));
  
 </code> </code>
Ligne 187: Ligne 206:
 ---- ----
  
-===== Fonction de configuration : création du formulaire =====+===== Fonction de configuration : Définition de la classe liée =====
  
 Fonction qui permet d'indiquer à symfony la classe à relié au formulaire. Fonction qui permet d'indiquer à symfony la classe à relié au formulaire.
Ligne 201: Ligne 220:
         ));         ));
     }     }
 +</code>
 +
 +----
 +
 +===== Rendu en twig =====
 +
 +=== Affichage des champs dans le formulaire ===
 +
 +Code basique : (Tout en un)
 +<code PHP>
 +{% if form.date is defined %}
 +   <div class="form-group inline">
 +      {{ form_row(form.date) }}
 +   </div>
 +{% endif %}   
 +</code>
 +
 +Code plus avancé : contrôle de l'emplacement de chaque champs : 
 +<code PHP>
 +{{ form_start(form, {'attr': {'id': 'form_affaire', 'enctype': 'multipart/form-data', 'autocomplete': 'off'}}) }}
 +   {% if form.date is defined %}
 +      {{ form_error(form.date) }}
 +      <div class="form-group inline">
 +         {{ form_widget(form.date) }}
 +         {{ form_label(form.date, "Date") }}
 +      </div>
 +   {% endif %}
 +{{ form_end(form) }}
 +</code>
 +
 +Affichage de toutes les erreurs du formulaire dans le cadre de l'usage de rendu sans //form_row// et d'un grand formulaire:
 +<code PHP>
 +<ul>
 +    {% for error in form.vars.errors.form.getErrors(true) %}
 +        <li>{{ error.message }}</li>
 +    {% endfor %}
 +</ul>
 +
 +{% if form.date is defined %}
 +   <div class="form-group inline">
 +      {{ form_widget(form.date) }}
 +      {{ form_label(form.date, "Date") }}
 +   </div>
 +{% endif %}
 +
 +{% if form.date1 is defined %}
 +   <div class="form-group inline">
 +      {{ form_widget(form.date1) }}
 +      {{ form_label(form.date1, "Date 1") }}
 +   </div>
 +{% endif %}
 +
 +{% if form.date2 is defined %}
 +   <div class="form-group inline">
 +      {{ form_widget(form.date2) }}
 +      {{ form_label(form.date2, "Date 2") }}
 +   </div>
 +{% endif %}
 </code> </code>
symfony_4/fonctionnement/les_formulaires_gestion_des_formulaires.1540282467.txt.gz · Dernière modification: 2019/12/08 08:43 (modification externe)