src/Form/MessageClientFormType.php line 17

Open in your IDE?
  1. <?php
  2. namespace App\Form;
  3. use App\Entity\MessageClient;
  4. use Symfony\Component\Form\AbstractType;
  5. use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
  6. use Symfony\Component\Form\Extension\Core\Type\DateType;
  7. use Symfony\Component\Form\FormBuilderInterface;
  8. use Symfony\Component\OptionsResolver\OptionsResolver;
  9. use Symfony\Component\Validator\Constraints\NotBlank;
  10. use Symfony\Component\Form\Extension\Core\Type\TextType;
  11. use Symfony\Component\Form\Extension\Core\Type\TextareaType;
  12. use Symfony\Component\Validator\Constraints\Email;
  13. class MessageClientFormType extends AbstractType
  14. {
  15. public function buildForm(FormBuilderInterface $builder, array $options): void
  16. {
  17. $builder
  18. ->add('name', TextType::class, [
  19. "label" => "Votre nom",
  20. "trim" => true,
  21. "required" => true,
  22. "constraints" => [
  23. new NotBlank(["message" => "Nom obligatoire"])
  24. ]
  25. ])
  26. ->add('email', TextType::class, [
  27. "label" => "Votre adresse email",
  28. "trim" => true,
  29. "required" => true,
  30. "constraints" => [
  31. new NotBlank(["message" => "Adresse email obligatoire"]),
  32. new Email(["message" => "Adresse email invalide"])
  33. ]
  34. ])
  35. ->add('phoneNumber', TextType::class, [
  36. "label" => "Votre numéro de téléphone",
  37. "trim" => true,
  38. "required" => true,
  39. "constraints" => [
  40. new NotBlank(["message" => "Numéro de téléphone obligatoire"])
  41. ]
  42. ])
  43. ->add('service', ChoiceType::class, [
  44. "label" => "Votre besoin",
  45. "trim" => true,
  46. "required" => true,
  47. 'choices' => [
  48. 'Consultation' => "Consultation",
  49. 'Formation' => "Formation",
  50. "Travail énergétique" => "Travail énergétique",
  51. "Autre" => "Autre"
  52. ],
  53. "constraints" => [
  54. new NotBlank(["message" => "Service obligatoire"])
  55. ]
  56. ])
  57. ->add('preferredDate', DateType::class, [
  58. "label" => "Vos disponibilités",
  59. "widget" => "single_text",
  60. "trim" => true,
  61. "required" => true,
  62. "constraints" => [
  63. new NotBlank(["message" => "Date obligatoire"])
  64. ]
  65. ])
  66. ->add('message', TextareaType::class, [
  67. "label" => "Message",
  68. "trim" => true,
  69. "required" => true,
  70. "attr" => ["rows" => "10"],
  71. "constraints" => [
  72. new NotBlank(["message" => "Message obligatoire"])
  73. ]
  74. ])
  75. ;
  76. }
  77. public function configureOptions(OptionsResolver $resolver): void
  78. {
  79. $resolver->setDefaults([
  80. 'data_class' => MessageClient::class,
  81. ]);
  82. }
  83. }