src/Form/CandidatureType.php line 15

  1. <?php
  2. namespace App\Form;
  3. use App\Entity\Candidature;
  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\FileType;
  8. use Symfony\Component\Form\Extension\Core\Type\TextType;
  9. use Symfony\Component\Form\Extension\Core\Type\EmailType;
  10. use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
  11. use Symfony\Component\Form\Extension\Core\Type\TextareaType;
  12. class CandidatureType 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' => 'Téléphone',
  37.             'attr' => [
  38.                 'class' => 'form-control'
  39.             ]
  40.         ])
  41.         ->add('adress'TextType::class, [
  42.             'label' => 'Adresse',
  43.             'attr' => [
  44.                 'class' => 'form-control'
  45.             ]
  46.         ])
  47.         ->add('city'TextType::class, [
  48.             'label' => 'Ville',
  49.             'attr' => [
  50.                 'class' => 'form-control'
  51.             ]
  52.         ])
  53.         ->add('cedex'TextType::class, [
  54.             'label' => 'Code Postal',
  55.             'attr' => [
  56.                 'class' => 'form-control'
  57.             ]
  58.         ])
  59.         ->add('text'TextareaType::class, [
  60.             'label' => 'Vous pouvez nous laisser un message pour accompagner votre demande.',
  61.             'attr' => [
  62.                 'class' => 'form-control'
  63.             ]
  64.         ])
  65.         
  66.             ->add('pdfFile'FileType::class, [
  67.                 'label' => 'Télécharger votre CV ',
  68.                 'required' => true,
  69.             ])
  70.            
  71.             ->add('consent'CheckboxType::class, [
  72.                 'label' => 'J\'accepte que mes données soient collectées et utilisées conformément à votre politique de confidentialité.',
  73.                 'mapped' => false// Ne pas mapper ce champ à l'entité
  74.                 'required' => true,
  75.                 'attr' => [
  76.                     'class' => 'custom-checkbox'// Ajout d'une classe CSS personnalisée
  77.                 ],
  78.                 'label_attr' => [
  79.                     'class' => 'form-check-label'// Ajout d'une classe CSS personnalisée pour l'étiquette
  80.                 ],
  81.             ]);
  82.         ;
  83.     }
  84.     public function configureOptions(OptionsResolver $resolver): void
  85.     {
  86.         $resolver->setDefaults([
  87.             'data_class' => Candidature::class,
  88.         ]);
  89.     }
  90. }