src/Form/DevisType.php line 15

  1. <?php
  2. namespace App\Form;
  3. use App\Entity\Devis;
  4. use Symfony\Component\Form\AbstractType;
  5. use Symfony\Component\Form\FormBuilderInterface;
  6. use Symfony\Component\OptionsResolver\OptionsResolver;
  7. use Symfony\Component\Form\Extension\Core\Type\TextType;
  8. use Symfony\Component\Form\Extension\Core\Type\EmailType;
  9. use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
  10. use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
  11. use Symfony\Component\Form\Extension\Core\Type\TextareaType;
  12. class DevisType extends AbstractType
  13. {
  14.     public function buildForm(FormBuilderInterface $builder, array $options): void
  15.     {
  16.         $builder
  17.         ->add('name'TextType::class, [
  18.             'label' => 'Nom',
  19.             'attr' => [
  20.                 'class' => 'form-control'
  21.             ]
  22.         ])
  23.         ->add('firstname'TextType::class, [
  24.             'label' => 'Prénom',
  25.             'attr' => [
  26.                 'class' => 'form-control'
  27.             ]
  28.         ])
  29.         ->add('email'EmailType::class, [
  30.             'label' => 'Votre email',
  31.             'attr' => [
  32.                 'class' => 'form-control'
  33.             ]
  34.         ])
  35.         ->add('phone'TextType::class, [
  36.             'label' => 'Numéro de téléphone',
  37.             'attr' => [
  38.                 'class' => 'form-control'
  39.             ]
  40.         ])
  41.         ->add('society'TextType::class, [
  42.             'label' => 'Entreprise',
  43.             'required' => false,
  44.             'attr' => [
  45.                 'class' => 'form-control',
  46.                 
  47.             ]
  48.         ])
  49.         ->add('adresse'TextType::class, [
  50.             'label' => 'Adresse d\'intervention',
  51.             'attr' => [
  52.                 'class' => 'form-control'
  53.             ]
  54.         ])
  55.         ->add('city'TextType::class, [
  56.             'label' => 'Ville',
  57.             'attr' => [
  58.                 'class' => 'form-control'
  59.             ]
  60.         ])
  61.         ->add('zip'TextType::class, [
  62.             'label' => 'Code Postal',
  63.             'attr' => [
  64.                 'class' => 'form-control',
  65.                 
  66.             ]
  67.         ])
  68.         ->add('services'ChoiceType::class, [
  69.             'label' => '',
  70.             'required' => true,
  71.             'multiple' => false,
  72.             'expanded' => false,
  73.             'choices' => array(
  74.                 'Sécurité Incendie' => 'Sécurité Incendie',
  75.                 'Sécurité & Prévention ' => 'Sécurité & Prévention',
  76.                 'Sécurité Cynophile' => 'Sécurité Cynophile',
  77.                 'Sécurité Rondier' => 'Sécurité Rondier',
  78.                 'Gardiennage' => 'Gardiennage',
  79.                 'Autres' => 'Autres',
  80.              
  81.                
  82.             ),
  83.             'attr' => [
  84.                 'class' => 'form-control'
  85.                 
  86.                     ]
  87.             ])
  88.         ->add('subject'TextareaType::class, [
  89.             'label' => 'Votre message',
  90.             'attr' => [
  91.                 'class' => 'form-control'
  92.             ]
  93.             ])
  94.             ->add('consent'CheckboxType::class, [
  95.                 'label' => 'J\'accepte que mes données soient collectées et utilisées conformément à votre politique de confidentialité.',
  96.                 'mapped' => false,
  97.                 'required' => true,
  98.                 'attr' => [
  99.                     'class' => 'form-check-input'// Retirer la classe "form-check-inline" ici
  100.                 ],
  101.                 'label_attr' => [
  102.                     'class' => 'form-check-label'// Ajout d'une classe CSS personnalisée pour l'étiquette
  103.                 ],
  104.             ]);
  105.         ;
  106.     }
  107.     public function configureOptions(OptionsResolver $resolver): void
  108.     {
  109.         $resolver->setDefaults([
  110.             'data_class' => Devis::class,
  111.         ]);
  112.     }
  113. }