src/Form/ContactType.php line 13

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\Form\Extension\Core\Type\EmailType;
  6. use Symfony\Component\Form\Extension\Core\Type\TextareaType;
  7. use Symfony\Component\Form\Extension\Core\Type\TextType;
  8. use Symfony\Component\OptionsResolver\OptionsResolver;
  9. use Symfony\Component\Validator\Constraints as Assert;
  10. class ContactType extends AbstractType
  11. {
  12.     public function buildForm(FormBuilderInterface $builder, array $options): void
  13.     {
  14.         $builder
  15.             ->add('name'TextType::class, [
  16.                 'label' => 'Name',
  17.                 'constraints' => [
  18.                     new Assert\NotBlank([
  19.                         'message' => 'Please enter your name',
  20.                     ]),
  21.                     new Assert\Length([
  22.                         'max' => 120,
  23.                     ]),
  24.                 ],
  25.             ])
  26.             ->add('email'EmailType::class, [
  27.                 'label' => 'Email',
  28.                 'constraints' => [
  29.                     new Assert\NotBlank([
  30.                         'message' => 'Please enter your email',
  31.                     ]),
  32.                     new Assert\Email([
  33.                         'message' => 'Please enter a valid email address',
  34.                     ]),
  35.                     new Assert\Length([
  36.                         'max' => 180,
  37.                     ]),
  38.                 ],
  39.             ])
  40.             ->add('message'TextareaType::class, [
  41.                 'label' => 'Message',
  42.                 'attr' => [
  43.                     'rows' => 6,
  44.                 ],
  45.                 'constraints' => [
  46.                     new Assert\NotBlank([
  47.                         'message' => 'Please enter a message',
  48.                     ]),
  49.                     new Assert\Length([
  50.                         'max' => 4000,
  51.                     ]),
  52.                 ],
  53.             ]);
  54.     }
  55.     public function configureOptions(OptionsResolver $resolver): void
  56.     {
  57.         $resolver->setDefaults([
  58.             'csrf_protection' => true,
  59.         ]);
  60.     }
  61. }