src/Form/UserType.php line 13

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\EmailType;
  6. use Symfony\Component\Form\Extension\Core\Type\PasswordType;
  7. use Symfony\Component\Form\Extension\Core\Type\RepeatedType;
  8. use Symfony\Component\Form\FormBuilderInterface;
  9. use Symfony\Component\OptionsResolver\OptionsResolver;
  10. class UserType extends AbstractType
  11. {
  12.     public function buildForm(FormBuilderInterface $builder, array $options): void
  13.     {
  14.         $role $options['role'];
  15.         $builder->add('email'EmailType::class);
  16.         if ("admin" === $role) {
  17.             $builder
  18.                 ->add('clientName')
  19.                 ->add('adresse')
  20.                 ->add('complement')
  21.                 ->add('codePostal')
  22.                 ->add('ville')
  23.                 ->add('represantantFirstName')
  24.                 ->add('represantantLastName')
  25.                 ->add('dateNaissanceRepresentant', \Symfony\Component\Form\Extension\Core\Type\DateType::class, [
  26.                     'widget' => 'single_text',
  27.                     'required' => false,
  28.                     'mapped' => false,
  29.                     'label' => 'Date de naissance du représentant',
  30.                 ])
  31.                 ->add('lieuNaissanceRepresentant', \Symfony\Component\Form\Extension\Core\Type\TextType::class, [
  32.                     'required' => false,
  33.                     'mapped' => false,
  34.                     'label' => 'Lieu de naissance du représentant',
  35.                 ]);
  36.         } else {
  37.             $builder->add('password'RepeatedType::class, [
  38.                 'type'           => PasswordType::class,
  39.                 'first_options'  => ['label' => 'Mot de passe'],
  40.                 'second_options' => ['label' => 'Confirmer le mot de passe'],
  41.                 'mapped'         => true,
  42.             ]);
  43.         }
  44.     }
  45.     public function configureOptions(OptionsResolver $resolver): void
  46.     {
  47.         $resolver->setDefaults([
  48.             'data_class' => User::class,
  49.             'role' => null// Définir l'option personnalisée avec une valeur par défaut
  50.         ]);
  51.         $resolver->setAllowedTypes('role', ['null''string']); // Définir les types autorisés pour l'option
  52.     }
  53. }