Différences

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

Lien vers cette vue comparative

Prochaine révision
Révision précédente
prog:symfony:formulaires:formtype_file [28/09/2022 12:35]
thierry créée
prog:symfony:formulaires:formtype_file [28/09/2022 12:49] (Version actuelle)
thierry [Required]
Ligne 1: Ligne 1:
 ====== Le Fichier xxxFormType.php ====== ====== Le Fichier xxxFormType.php ======
 +===== Exemple de fichier =====
 +<code php TestFormType.php>​
 +<?php
 +
 +namespace App\Form;
 +
 +use App\Entity\Test;​
 +use Symfony\Component\Form\AbstractType;​
 +use Symfony\Component\Form\Extension\Core\Type\CheckboxType;​
 +use Symfony\Component\Form\Extension\Core\Type\EmailType;​
 +use Symfony\Component\Form\Extension\Core\Type\HiddenType;​
 +use Symfony\Component\Form\Extension\Core\Type\SubmitType;​
 +use Symfony\Component\Form\FormBuilderInterface;​
 +use Symfony\Component\OptionsResolver\OptionsResolver;​
 +
 +class TestMailFormType extends AbstractType
 +{
 +    public function buildForm(FormBuilderInterface $builder, array $options): void
 +    {
 +        $builder
 +            ->​add('​num',​ HiddenType::​class)
 +            ->​add('​mail',​ EmailType::​class,​ [
 +                '​label'​ => '​Entrez votre adresse e-mail',​
 +                '​attr'​ => ['​class'​ => '​form-control form-control-lg',​ '​placeholder'​ => '​Adresse Email'​]
 +            ])
 +            ->​add('​acc_mailing',​ CheckboxType::​class,​ ['​required'​ => false, '​label'​=>'​Accepter mailing'​])
 +            ->​add('​acc_contract',​ CheckboxType::​class)
 +            ->​add('​submit',​ SubmitType::​class,​ [
 +                '​attr'​ => ['​class'​ => 'btn btn-primary btn-lg btn-block'​],​
 +                '​label'​ => '​Enregistrer'​
 +            ]);
 +    }
 +
 +    public function configureOptions(OptionsResolver $resolver): void
 +    {
 +        $resolver->​setDefaults([
 +            '​data_class'​ => Test::​class,​
 +        ]);
 +    }
 +}
 +
 +</​code>​
 +===== Les Champs de formulaires =====
 +==== Options des champs ====
 +=== Attr ===
 +''​ ['​attr'​ => ['​attribut1'​=>'​valeur','​attribut2'​=>'​valeur'​]]''​
 +
 +Utilisé pour définir des attributs de la balise HTML du champ.
 +<code php>
 +$builder->​add('​mail',​ EmailType::​class,​ ['​attr'​ => ['​class'​ => '​form-control form-control-lg',​ '​placeholder'​ => '​Adresse Email'​]]);​
 +</​code>​
 +Ce qui nous affichera en HTML
 +<code html>
 +<input type="​email"​ id="​test_mail_form_mail"​ name="​test_mail_form[mail]"​ required="​required"​ class="​form-control form-control-lg form-control"​ placeholder="​Adresse Email" />
 +</​code>​
 +=== Label ===
 +''​ ['​label'​ => 'Mon Label'​]''​
 +<code php>
 +$builder->​add('​mail',​ EmailType::​class,​ ['​label'​ => '​Entrez votre adresse e-mail'​]);​
 +</​code>​
 +=== Required ===
 + ''​ ['​required'​ => false]''​
 +
 +Par défaut un champ est considéré comme Required,\\
 +pour le mettre non Required il faut mettre explicitement l'​option ''​ ['​required'​ => false]''​
 +<code php>
 +$builder->​add('​acc_mailing',​ CheckboxType::​class,​ ['​required'​ => false])
 +</​code>​
 +
 +
 +
 +