src/Form/UserType.php line 14

Open in your IDE?
  1. <?php
  2. namespace App\Form;
  3. use App\Entity\User;
  4. use Symfony\Component\Form\AbstractType;
  5. use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
  6. use Symfony\Component\Form\FormBuilderInterface;
  7. use Symfony\Component\OptionsResolver\OptionsResolver;
  8. use Symfony\Component\Form\Extension\Core\Type\TextType;
  9. use Symfony\Component\Form\Extension\Core\Type\PasswordType;
  10. use Symfony\Component\Form\Extension\Core\Type\RepeatedType;
  11. class UserType extends AbstractType
  12. {
  13.     public function buildForm(FormBuilderInterface $builder, array $options): void
  14.     {
  15.             if ($options['inscription']) {
  16.             
  17.                 $builder
  18.                     ->add('email'TextType::class,[
  19.                         "required" =>false,
  20.                         "attr" => [
  21.                             "class" => "bg-light"
  22.                         ]
  23.                     ])
  24.                     ->add('password',RepeatedType::class,[
  25.                         "required" =>false,
  26.                         "type" => PasswordType::class,
  27.                         "first_name" =>"first",
  28.                         "second_name" =>"second",
  29.                         "invalid_message" => "Les mots de passe ne sont pas identiques",
  30.                         "first_options"=>[
  31.                             "label" => "Mot de passe",
  32.                             "required"=> false
  33.                         ],
  34.                         "second_options"=>[
  35.                             "label" => "Confirmer le mot de passe",
  36.                             "required"=> false
  37.                         ],
  38.                         "attr" => [
  39.                             "class" => "bg-light"
  40.                         ]
  41.                     ])
  42.                     ->add('nom',TextType::class,[
  43.                         "required" =>false,
  44.                         "attr" => [
  45.                             "class" => "bg-light"
  46.                         ]
  47.                     ])
  48.                     ->add('prenom',TextType::class,[
  49.                         "required" =>false,
  50.                         "attr" => [
  51.                             "class" => "bg-light"
  52.                         ]
  53.                     ])
  54.                 ;
  55.             } elseif ($options['profil']) {
  56.                 $builder
  57.                     ->add('email'TextType::class,[
  58.                         "required" =>false,
  59.                         "attr" => [
  60.                             "class" => "bg-light"
  61.                         ]
  62.                     ])
  63.                     ->add('nom',TextType::class,[
  64.                         "required" =>false,
  65.                         "attr" => [
  66.                             "class" => "bg-light"
  67.                         ]
  68.                     ])
  69.                     ->add('prenom',TextType::class,[
  70.                         "required" =>false,
  71.                         "attr" => [
  72.                             "class" => "bg-light"
  73.                         ]
  74.                     ])
  75.                 ;
  76.             } elseif ($options['userAdmin']){
  77.                 $builder
  78.                     ->add('email'TextType::class,[
  79.                         "required" =>false,
  80.                         "attr" => [
  81.                             "class" => "bg-light"
  82.                         ]
  83.                     ])
  84.                     ->add('nom',TextType::class,[
  85.                         "required" =>false,
  86.                         "attr" => [
  87.                             "class" => "bg-light"
  88.                         ]
  89.                     ])
  90.                     ->add('prenom',TextType::class,[
  91.                         "required" =>false,
  92.                         "attr" => [
  93.                             "class" => "bg-light"
  94.                         ]
  95.                     ])
  96.                     ->add('roles'ChoiceType::class, [
  97.                             "required" =>false,
  98.                             'choices' => ['ROLE_ADMIN' => 'ROLE_ADMIN''ROLE_USER' => 'ROLE_USER' 'ROLE_REVENDEUR' => 'ROLE_REVENDEUR'],
  99.                             'expanded' => true,
  100.                             'multiple' => true,
  101.                         ]
  102.                     )
  103.                 ;
  104.             }
  105.             
  106.     }
  107.     public function configureOptions(OptionsResolver $resolver): void
  108.     {
  109.         $resolver->setDefaults([
  110.             'data_class' => User::class,
  111.             'userAdmin' => false
  112.             'inscription' => false
  113.             'profil' => false // on met à false les options créées pour différencier les builders car en cas de modicication on ne veut pas toucher au mot de passe
  114.         ]);
  115.     }
  116. }