src/Form/RegistrationFormType.php line 75

Open in your IDE?
  1. <?php
  2. namespace App\Form;
  3. use App\Entity\User;
  4. use App\Entity\Villes;
  5. use App\Repository\VillesRepository;
  6. use EasyCorp\Bundle\EasyAdminBundle\Field\TelephoneField;
  7. use Symfony\Component\Form\AbstractType;
  8. use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
  9. use Symfony\Component\Form\Extension\Core\Type\EmailType;
  10. use Symfony\Component\Form\Extension\Core\Type\PasswordType;
  11. use Symfony\Component\Form\Extension\Core\Type\TextType;
  12. use Symfony\Component\Form\FormBuilderInterface;
  13. use Symfony\Component\OptionsResolver\OptionsResolver;
  14. use Symfony\Component\Validator\Constraints\IsTrue;
  15. use Symfony\Component\Validator\Constraints\Length;
  16. use Symfony\Component\Validator\Constraints\NotBlank;
  17. class RegistrationFormType extends AbstractType
  18. {
  19.     private VillesRepository $villesRepository ;
  20.         
  21.     /**
  22.      * @param VillesRepository $villesRepository
  23.      */
  24.      public function __construct(VillesRepository $villesRepository)
  25.      {
  26.            $this->villesRepository $villesRepository;
  27.      }
  28.     
  29.     public function buildForm(FormBuilderInterface $builder, array $options): void
  30.     {
  31.         $villes =  $this->villesRepository->findAll() ;
  32.        // dd($villes);
  33.         $builder
  34.             ->add('telephone',TextType::class,[
  35.                 'constraints' => [
  36.                     new NotBlank([
  37.                         'message' => 'Veillez renseignez votre numero de telephone',])],
  38.                      'label'=>'Numero de telephone au format (96004523)<span  style="color:red;">*</span>',
  39.                      'label_html' => true
  40.                 ])
  41.             ->add('nom',TextType::class,[
  42.                 'constraints' => [
  43.                     new NotBlank([
  44.                         'message' => 'Veillez renseignez votre nom',])],
  45.                 'label'=>'Nom <span  style="color:red;">*</span>',
  46.                 'label_html'=>true
  47.                 ])
  48.             ->add('prenoms',TextType::class,[
  49.         'constraints' => [
  50.             new NotBlank([
  51.                 'message' => 'Veillez renseignez votre prenom',])],
  52.         'label'=>'Prénoms <span  style="color:red;">*</span>',
  53.         'label_html'=>true
  54.         ])
  55.             ->add('boutique',TextType::class,[ 'label'=>'Boutique' ])
  56.             ->add('email',EmailType::class,[ 
  57.                 'constraints' => [
  58.                     new NotBlank([
  59.                         'message' => 'Veillez renseignez votre email',])],
  60.                 'label'=>'E-mail<span  style="color:red;">*</span>',
  61.                 'label_html'=>true
  62.                 ])
  63.             ->add('ville'
  64.             ChoiceType::class, [
  65.                 'choices' => 
  66.                     $villes
  67.                     
  68.                 'choice_value' => 'nom',
  69.                 'placeholder' => 'Choisir sa localisation',
  70.                 'choice_label' => function (?Villes $v) {
  71.                     return $v->getNom();
  72.                 },
  73.                 'row_attr' => ['class' => 'select2-selection form-control'],
  74.                 'label'=>'Localisation Boutique',
  75.                 ])
  76.             ->add('telwhatsapp'TextType::class, ['label'=>'Numero whatsApp (+2289200000)'])
  77.             ->add('password'PasswordType::class, [
  78.                 // instead of being set onto the object directly,
  79.                 // this is read and encoded in the controller
  80.               //  'mapped' => false,
  81.                 'label'=>'Mot de passe<span  style="color:red;">*</span>',
  82.                 'label_html'=>true,
  83.                 'attr' => ['autocomplete' => 'Nouveau mot de passe'],
  84.                 'constraints' => [
  85.                     new NotBlank([
  86.                         'message' => 'Renseigner un mot de passe',
  87.                     ]),
  88.                     new Length([
  89.                         'min' => 6,
  90.                         'minMessage' => 'votre mot de passe doit avoir au moins {{ limit }} caractère',
  91.                         // max length allowed by Symfony for security reasons
  92.                         'max' => 4096,
  93.                     ]),
  94.                 ],
  95.             ])
  96.             ->add('confirmpassword'PasswordType::class, [
  97.                 // instead of being set onto the object directly,
  98.                 // this is read and encoded in the controller
  99.                 'mapped' => false,
  100.                 'label'=>'Confirmer le mot de passe <span  style="color:red;">*</span>',
  101.                 'label_html'=>true,
  102.                 'attr' => ['autocomplete' => 'Nouveau mot de passe'],
  103.                 'constraints' => [
  104.                     new NotBlank([
  105.                         'message' => 'Renseigner un mot de passe',
  106.                     ]),
  107.                     new Length([
  108.                         'min' => 6,
  109.                         'minMessage' => 'votre mot de passe doit avoir au moins {{ limit }} caractère',
  110.                         // max length allowed by Symfony for security reasons
  111.                         'max' => 4096,
  112.                     ]),
  113.                 ],
  114.             ])
  115.         ;
  116.     }
  117.     public function configureOptions(OptionsResolver $resolver): void
  118.     {
  119.         $resolver->setDefaults([
  120.             'data_class' => User::class,
  121.         ]);
  122.     }
  123. }