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> | ||
| + | |||
| + | |||
| + | |||
| + | |||