src\Form\RegistrationFormProType.php line 25

Open in your IDE?
  1. <?php
  2. namespace App\Form;
  3. use App\Entity\Pays;
  4. use App\Entity\User;
  5. use Symfony\Bridge\Doctrine\Form\Type\EntityType;
  6. use Symfony\Component\Form\AbstractType;
  7. use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
  8. use Symfony\Component\Form\Extension\Core\Type\PasswordType;
  9. use Symfony\Component\Form\FormBuilderInterface;
  10. use Symfony\Component\OptionsResolver\OptionsResolver;
  11. use Symfony\Component\Validator\Constraints\Email;
  12. use Symfony\Component\Validator\Constraints\IsTrue;
  13. use Symfony\Component\Validator\Constraints\Length;
  14. use Symfony\Component\Validator\Constraints\NotBlank;
  15. use Symfony\Component\Form\Extension\Core\Type\RepeatedType;
  16. use Symfony\Component\Form\Extension\Core\Type\EmailType;
  17. use Symfony\Component\Form\Extension\Core\Type\TextType;
  18. use Symfony\Component\Form\Extension\Core\Type\TelType;
  19. use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
  20. use Symfony\Component\Validator\Constraints\Unique;
  21. class RegistrationFormProType extends AbstractType
  22. {
  23.     public $classAttr=['class'=>'h-lg'];
  24.     public function buildForm(FormBuilderInterface $builder, array $options)
  25.     {
  26.         $builder
  27.             ->add('nom',TextType::class,[
  28.                 'label'=>"Nom de famille *",
  29.                 'attr'=>$this->classAttr,
  30.                 ]
  31.             )
  32.             ->add('prenom',TextType::class,
  33.                 [
  34.                     'label'=>"Prénoms *",
  35.                     'attr'=>$this->classAttr,
  36.                 ]
  37.             )
  38.             ->add('tel',TelType::class,[
  39.                 'label'=>"Numéro de téléphone *",
  40.                 'attr'=>$this->classAttr,
  41.                 ]
  42.             )
  43.             ->add('profil'ChoiceType::class,[
  44.                'label'=>"Vous êtes *",
  45.                'attr'=>$this->classAttr,
  46.                'choices'=>[
  47.                   '-- Sélectionnez --'=>"",
  48.                    'Trésorier'=>"Trésorier",
  49.                    'Trader'=>"Trader",
  50.                    'Négociateur'=>"Négociateur",
  51.                    'Analyste'=>"Analyste",
  52.                    'Structureur'=>"Structureur",
  53.                    'Quant'=>"Quant",
  54.                    'DSI'=>"Directeur des Systèmes d’Information",
  55.                    'Gestionnaire OPVM'=>"Gestionnaire OPVM",
  56.                    'Gestionnaire Back Office'=>"Gestionnaire back office",
  57.                    'Gestionnaire Middle Office '=>"Gestionnaire Middle Office ",
  58.                    'Gestionnaire de Portefeuille'=>"Gestionnaire de Portefeuille",
  59.                    'Contrôleur Interne'=>"Contrôleur Interne",
  60.                    'Responsable Risque et Conformité '=>"Responsable Risque et Conformité",
  61.                    'Audit  interne'=>"Audit  interne",
  62.                    'Responsable Conformité '=>"Responsable Conformité",
  63.                    'Responsable Lutte Anti Blanchiment '=>"Responsable Lutte Anti Blanchiment",
  64.                     'Autres'=>"Autres"
  65.                    
  66.                     ],
  67.            ])
  68.              ->add('societe',TextType::class,[
  69.                 'label'=>"Nom de la societé  *",
  70.                 'attr'=>$this->classAttr,
  71.                 ]
  72.             )
  73.             ->add('civilite',ChoiceType::class,
  74.                 [
  75.                     'label'=>"Civilité *",
  76.                     'attr'=>$this->classAttr,
  77.                     'choices' => $this->getCivilites()
  78.                 ]
  79.             ) ->add('pays',EntityType::class,
  80.                 [
  81.                     'label'=>"Pays *",
  82.                     'class' => Pays::class,
  83.                     'choice_label' => 'nompays',
  84.                     'attr'=>$this->classAttr,
  85.                 ]
  86.             )
  87.             ->add('email',EmailType::class,[
  88.                 'label' => 'Adresse e-mail *',
  89.                 'attr'=>$this->classAttr,
  90.                 'constraints'=>[
  91.                     new Email([
  92.                         'message' => 'Veuillez entrer une adresse Email valide',
  93.                     ]),
  94.                     /*new Unique([
  95.                         'message'=>'Cette adresse Email existe déjà'
  96.                     ])*/
  97.                 ]
  98.             ])/*
  99.             ->add('agreeTerms', CheckboxType::class, [
  100.                 'label' => "J'accepte les conditions d'utilisation",
  101.                 'mapped' => false,
  102.                 'constraints' => [
  103.                     new IsTrue([
  104.                         'message' => 'Vous devez accepter les conditions d\'utilisation.',
  105.                     ]),
  106.                 ],
  107.             ])*/
  108.             ->add('plainPassword'RepeatedType::class, [
  109.                 // instead of being set onto the object directly,
  110.                 // this is read and encoded in the controller
  111.                 'attr'=>$this->classAttr,
  112.                 'type' => PasswordType::class,
  113.                 'first_options'  => array('label' => 'Mot de passe *'),
  114.                 'second_options' => array('label' => 'confirmer mot de passe*'),
  115.                 'invalid_message' => 'Veuillez entrer les mêmes mot de passe',
  116.                 'mapped' => false,
  117.                 'constraints' => [
  118.                     new NotBlank([
  119.                         'message' => 'Please enter a password',
  120.                     ]),
  121.                     new Length([
  122.                         'min' => 6,
  123.                         'minMessage' => 'Votre mot de passe doit comporter au moins {{ limit }} caractères',
  124.                         // max length allowed by Symfony for security reasons
  125.                         'max' => 4096,
  126.                     ]),
  127.                 ],
  128.             ])
  129.         ;
  130.     }
  131.     public function configureOptions(OptionsResolver $resolver)
  132.     {
  133.         $resolver->setDefaults([
  134.             'data_class' => User::class,
  135.         ]);
  136.     }
  137.     //---
  138.     private function getCivilites(){
  139.         $temp_civilites=[];
  140.         foreach (User::civilites_long AS $key=>$value){
  141.             $temp_civilites[$value] = $key;
  142.         }
  143.         return $temp_civilites;
  144.     }
  145. }