src/Form/SubscriptionForm/UserMultilType.php line 23

Open in your IDE?
  1. <?php
  2. namespace App\Form\SubscriptionForm;
  3. use App\Entity\UserPlatform;
  4. use App\Entity\PvCountry;
  5. use App\Form\SubscriptionForm\Assert\Email;
  6. use Symfony\Component\Form\AbstractType;
  7. use Symfony\Component\Form\FormBuilderInterface;
  8. use Symfony\Component\OptionsResolver\OptionsResolver;
  9. use Symfony\Component\Form\Extension\Core\Type\TextType;
  10. use Symfony\Component\Form\Extension\Core\Type\PasswordType;
  11. use Symfony\Component\Form\Extension\Core\Type\EmailType;
  12. use Symfony\Component\Form\Extension\Core\Type\TextareaType;
  13. use Symfony\Component\Form\Extension\Core\Type\FileType;
  14. use Symfony\Component\Validator\Constraints\File;
  15. use Symfony\Bridge\Doctrine\Form\Type\EntityType;
  16. use Symfony\Component\Validator\Constraints as Assert;
  17. use Symfony\Component\Form\FormEvent;
  18. use Symfony\Component\Form\FormEvents;
  19. class UserMultilType extends AbstractType
  20. {
  21.     public function buildForm(FormBuilderInterface $builder, array $options): void
  22.     {
  23.         $builder
  24.             ->add('nameuser'TextType::class, ["attr" => ["class" => "form-control"], 'label' => 'Nom et prenom'])
  25.             ->add('password'PasswordType::class, ["attr" => ["class" => "form-control"], 'label' => 'Mots de passe'])
  26.             ->add('confirmpass'PasswordType::class, ["attr" => ["class" => "form-control"], 'label' => 'Confirmation mots de passe''mapped' => false])
  27.             // ->add('email',TextType::class,["attr" => ["class" => "form-control"],'label' => 'Login (votre identifiant sur la plateforme)'])
  28.             ->add('mail'EmailType::class, ["attr" => ["class" => "form-control"], 'label' => 'Votre email (votre identifiant sur la plateforme)''required' => true'constraints' => [
  29.                 new Assert\Email([
  30.                     'message' => 'L\'adresse e-mail "{{ value }}" n\'est pas valide.',
  31.                 ]),
  32.             ]])
  33.             ->add('adresse'TextType::class, ["attr" => ["class" => "form-control"], 'label' => 'Votre adresse'])
  34.             ->add('phone'TextType::class, ["attr" => ["class" => "form-control"], 'label' => 'Numéro téléphone'])
  35.             ->add('adresse_livraison'TextType::class, ["attr" => ["class" => "form-control"], 'label' => 'Votre adresse livraison'])
  36.         ;
  37.         $builder->addEventListener(FormEvents::SUBMIT, function (FormEvent $event) {
  38.             $data $event->getData();
  39.             $form $event->getForm();
  40.             // Supposons que 'password' et 'confirmpass' soient des champs mappés
  41.             $password $data->getPassword();
  42.             $confirmPass $form->get('confirmpass')->getData(); // Champ non mappé récupéré directement
  43.             if ($password !== $confirmPass) {
  44.                 $form->get('confirmpass')->addError(new \Symfony\Component\Form\FormError('Les mots de passe ne correspondent pas.'));
  45.             }
  46.         });
  47.     }
  48.     public function configureOptions(OptionsResolver $resolver): void
  49.     {
  50.         $resolver->setDefaults([
  51.             'data_class' => UserPlatform::class,
  52.         ]);
  53.     }
  54. }