src/Form/PredictionFormType.php line 20

Open in your IDE?
  1. <?php
  2. namespace App\Form;
  3. use App\Entity\Prediction;
  4. use App\Form\DataTransformer\FrenchToDateTimeTransformer;
  5. use Symfony\Component\Form\AbstractType;
  6. use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
  7. use Symfony\Component\Form\Extension\Core\Type\DateType;
  8. use Symfony\Component\Form\Extension\Core\Type\EmailType;
  9. use Symfony\Component\Form\FormBuilderInterface;
  10. use Symfony\Component\OptionsResolver\OptionsResolver;
  11. use Symfony\Component\Validator\Constraints\NotBlank;
  12. use Symfony\Component\Form\Extension\Core\Type\TextType;
  13. use Symfony\Component\Form\Extension\Core\Type\TextareaType;
  14. use Symfony\Component\Validator\Constraints\Email;
  15. use Symfony\Component\Validator\Constraints\Regex;
  16. class PredictionFormType extends AbstractType
  17. {
  18. private $transformer;
  19. public function __construct(FrenchToDateTimeTransformer $transformer)
  20. {
  21. $this->transformer = $transformer;
  22. }
  23. public function buildForm(FormBuilderInterface $builder, array $options): void
  24. {
  25. $builder
  26. ->add('name', TextType::class, [
  27. "label" => "Votre nom",
  28. "trim" => true,
  29. "required" => true,
  30. "constraints" => [
  31. new NotBlank(["message" => "Nom obligatoire"])
  32. ]
  33. ])
  34. ->add('email', EmailType::class, [
  35. "label" => "Votre adresse email",
  36. "trim" => true,
  37. "required" => true,
  38. "constraints" => [
  39. new NotBlank(["message" => "Adresse email obligatoire"])
  40. ]
  41. ])
  42. // ->add('birthday', TextType::class, [
  43. // "label" => "Votre jour et mois de naissance",
  44. // "trim" => true,
  45. // "required" => false,
  46. // "constraints" => [
  47. // new NotBlank(["message" => "Jour et mois de naissance obligatoire"]),
  48. // new Regex([
  49. // 'pattern' => '/^\d{2}-\d{2}$/',
  50. // 'message' => 'Format invalide : DD-MM'
  51. // ])
  52. // ]
  53. // ])
  54. ->add('birthday', TextType::class, [
  55. "attr" => [
  56. "placeholder" => "Votre date de naissance"
  57. ]
  58. ])
  59. ;
  60. $builder->get('birthday')->addModelTransformer($this->transformer);
  61. }
  62. public function configureOptions(OptionsResolver $resolver): void
  63. {
  64. $resolver->setDefaults([
  65. 'data_class' => Prediction::class,
  66. ]);
  67. }
  68. }