<?php
namespace App\Form\SubscriptionForm;
use App\Entity\UserPlatform;
use App\Entity\PvCountry;
use App\Form\SubscriptionForm\Assert\Email;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\Extension\Core\Type\PasswordType;
use Symfony\Component\Form\Extension\Core\Type\EmailType;
use Symfony\Component\Form\Extension\Core\Type\TextareaType;
use Symfony\Component\Form\Extension\Core\Type\FileType;
use Symfony\Component\Validator\Constraints\File;
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
use Symfony\Component\Validator\Constraints as Assert;
use Symfony\Component\Form\FormEvent;
use Symfony\Component\Form\FormEvents;
class UserMultilType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options): void
{
$builder
->add('nameuser', TextType::class, ["attr" => ["class" => "form-control"], 'label' => 'Nom et prenom'])
->add('password', PasswordType::class, ["attr" => ["class" => "form-control"], 'label' => 'Mots de passe'])
->add('confirmpass', PasswordType::class, ["attr" => ["class" => "form-control"], 'label' => 'Confirmation mots de passe', 'mapped' => false])
// ->add('email',TextType::class,["attr" => ["class" => "form-control"],'label' => 'Login (votre identifiant sur la plateforme)'])
->add('mail', EmailType::class, ["attr" => ["class" => "form-control"], 'label' => 'Votre email (votre identifiant sur la plateforme)', 'required' => true, 'constraints' => [
new Assert\Email([
'message' => 'L\'adresse e-mail "{{ value }}" n\'est pas valide.',
]),
]])
->add('adresse', TextType::class, ["attr" => ["class" => "form-control"], 'label' => 'Votre adresse'])
->add('phone', TextType::class, ["attr" => ["class" => "form-control"], 'label' => 'Numéro téléphone'])
->add('adresse_livraison', TextType::class, ["attr" => ["class" => "form-control"], 'label' => 'Votre adresse livraison'])
;
$builder->addEventListener(FormEvents::SUBMIT, function (FormEvent $event) {
$data = $event->getData();
$form = $event->getForm();
// Supposons que 'password' et 'confirmpass' soient des champs mappés
$password = $data->getPassword();
$confirmPass = $form->get('confirmpass')->getData(); // Champ non mappé récupéré directement
if ($password !== $confirmPass) {
$form->get('confirmpass')->addError(new \Symfony\Component\Form\FormError('Les mots de passe ne correspondent pas.'));
}
});
}
public function configureOptions(OptionsResolver $resolver): void
{
$resolver->setDefaults([
'data_class' => UserPlatform::class,
]);
}
}