Différences
Ci-dessous, les différences entre deux révisions de la page.
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> | ||
+ | |||
+ | |||
+ | |||
+ | |||