src/Form/ContactFormType.php line 21

Open in your IDE?
  1. <?php
  2. namespace App\Form;
  3. use Symfony\Component\Form\AbstractType;
  4. use Symfony\Component\Form\FormBuilderInterface;
  5. use Symfony\Component\OptionsResolver\OptionsResolver;
  6. use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
  7. use Symfony\Component\Form\Extension\Core\Type\FormType;
  8. use Symfony\Component\Form\Extension\Core\Type\DateType;
  9. use Symfony\Component\Form\Extension\Core\Type\TimeType;
  10. use Symfony\Component\Form\Extension\Core\Type\TextType;
  11. use Symfony\Component\Form\Extension\Core\Type\EmailType;
  12. use Symfony\Component\Form\Extension\Core\Type\TelType;
  13. use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
  14. use Symfony\Component\Form\Extension\Core\Type\TextareaType;
  15. use Symfony\Component\Form\Extension\Core\Type\HiddenType;
  16. use Symfony\Component\Form\Extension\Core\Type\SubmitType;
  17. class ContactFormType extends AbstractType
  18. {
  19.     private $params;
  20.     public function __construct(ParameterBagInterface $params)
  21.     {
  22.         $this->params = $params;
  23.     }
  24.     public function buildForm(FormBuilderInterface $builder, array $options)
  25.     {   
  26.         $recipient_choices = ['' => ''] ;
  27.         $contact_recipients = array_keys($this->params->get('contact_recipients'));
  28.         $recipient_choices = array_merge($recipient_choices, array_flip($contact_recipients));
  29.         $subject_choices = array_flip($this->params->get('subject_choices'));
  30.         $builder
  31.             ->add('nom', TextType::class, ['attr' => ['placeholder' => "Nom *"]])
  32.             ->add('prenom', TextType::class, ['attr' => ['placeholder' => "Prénom *"]])
  33.             ->add('email', EmailType::class, ['attr' => ['placeholder' => "Email *"]])
  34.             ->add('phone', TelType::class, ['attr' => ['placeholder' => "Téléphone *"]])
  35.             ->add('sujet', ChoiceType::class, [
  36.                 'label' => 'Je souhaite',
  37.                 'label_attr' => ['class' => 'col-form-label'],
  38.                 'choices' => $subject_choices,
  39.                 // 'attr' => ['data-placeholder' => 'Objet de votre demande *']
  40.             ])
  41.             ->add('message', TextareaType::class, [ 'row_attr' => ['class' => 'flex-fill'], 'attr' => ['placeholder' => "Votre Message *", 'rows' => 8]])
  42.         ;
  43.     }
  44.     public function configureOptions(OptionsResolver $resolver)
  45.     {
  46.         $resolver->setDefaults([
  47.             'csrf_protection' => true,
  48.             'csrf_field_name' => '_token',
  49.             'csrf_token_id'   => 'send_message',
  50.         ]);
  51.     }
  52. }