<?php
namespace App\Form;
use App\Entity\Prediction;
use App\Form\DataTransformer\FrenchToDateTimeTransformer;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\Extension\Core\Type\DateType;
use Symfony\Component\Form\Extension\Core\Type\EmailType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Validator\Constraints\NotBlank;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\Extension\Core\Type\TextareaType;
use Symfony\Component\Validator\Constraints\Email;
use Symfony\Component\Validator\Constraints\Regex;
class PredictionFormType extends AbstractType
{
private $transformer;
public function __construct(FrenchToDateTimeTransformer $transformer)
{
$this->transformer = $transformer;
}
public function buildForm(FormBuilderInterface $builder, array $options): void
{
$builder
->add('name', TextType::class, [
"label" => "Votre nom",
"trim" => true,
"required" => true,
"constraints" => [
new NotBlank(["message" => "Nom obligatoire"])
]
])
->add('email', EmailType::class, [
"label" => "Votre adresse email",
"trim" => true,
"required" => true,
"constraints" => [
new NotBlank(["message" => "Adresse email obligatoire"])
]
])
// ->add('birthday', TextType::class, [
// "label" => "Votre jour et mois de naissance",
// "trim" => true,
// "required" => false,
// "constraints" => [
// new NotBlank(["message" => "Jour et mois de naissance obligatoire"]),
// new Regex([
// 'pattern' => '/^\d{2}-\d{2}$/',
// 'message' => 'Format invalide : DD-MM'
// ])
// ]
// ])
->add('birthday', TextType::class, [
"attr" => [
"placeholder" => "Votre date de naissance"
]
])
;
$builder->get('birthday')->addModelTransformer($this->transformer);
}
public function configureOptions(OptionsResolver $resolver): void
{
$resolver->setDefaults([
'data_class' => Prediction::class,
]);
}
}