src/Form/ContactType.php line 16

  1. <?php
  2. namespace App\Form;
  3. use App\Entity\Message;
  4. use Symfony\Component\Form\AbstractType;
  5. use Symfony\Component\Form\Extension\Core\Type\EmailType;
  6. use Symfony\Component\Form\Extension\Core\Type\NumberType;
  7. use Symfony\Component\Form\Extension\Core\Type\SubmitType;
  8. use Symfony\Component\Form\Extension\Core\Type\TextareaType;
  9. use Symfony\Component\Form\Extension\Core\Type\TextType;
  10. use Symfony\Component\Form\FormBuilderInterface;
  11. use Symfony\Component\OptionsResolver\OptionsResolver;
  12. use Symfony\Component\Validator\Constraints as Assert;
  13. class ContactType extends AbstractType
  14. {
  15.     public function buildForm(FormBuilderInterface $builder, array $options): void
  16.     {
  17.         $builder
  18.             ->add('name',TextType::class,[
  19.                 'attr'=>[
  20.                     'maxlength'=>'20'
  21.                 ],
  22.                 'constraints'=>[
  23.                     new Assert\Length([
  24.                         'max' => 20,
  25.                         'maxMessage' => 'Nom trop long'
  26.                     ]),
  27.                 ]
  28.             ])
  29.             ->add('email',EmailType::class,[
  30.                 'attr' =>[
  31.                     'maxlength'=> '100'
  32.                 ],
  33.                 'constraints' => [
  34.                     new Assert\Email([
  35.                         'message' => 'Veuillez entrer une adresse email valide'
  36.                     ]),
  37.                     new Assert\NotBlank([
  38.                         'message' => 'Veuillez entrer une adresse email valide',
  39.                     ]),
  40.                     new Assert\Length([
  41.                         'max' => 100,
  42.                         'maxMessage' => 'email trop longue'
  43.                     ]),
  44.                 ]
  45.             ])
  46.             ->add('phone',NumberType::class,[
  47.                 'attr' =>[
  48.                     'maxlength'=> '100'
  49.                 ],
  50.                 'constraints' => [
  51.                     new Assert\NotBlank([
  52.                         'message' => 'Veuillez entrer un numéro valide',
  53.                     ]),
  54.                     new Assert\Length([
  55.                         'max' => 100,
  56.                         'maxMessage' => 'Numéro trop long'
  57.                     ]),
  58.                 ]
  59.             ])
  60.             ->add('body',TextareaType::class,[
  61.                 'constraints'=>[
  62.                     new Assert\NotBlank(['message' => 'Veuillez remplir ce champ'])
  63.                 ]
  64.             ]);
  65.     }
  66.     public function configureOptions(OptionsResolver $resolver): void
  67.     {
  68.         $resolver->setDefaults([
  69.             'data_class' => Message::class,
  70.         ]);
  71.     }
  72. }