src/Form/UserType.php line 25

Open in your IDE?
  1. <?php
  2. namespace App\Form;
  3. use App\Entity\Club;
  4. use App\Entity\User;
  5. use Doctrine\DBAL\Types\DateType;
  6. use Symfony\Bridge\Doctrine\Form\Type\EntityType;
  7. use Symfony\Component\Form\AbstractType;
  8. use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
  9. use Symfony\Component\Form\Extension\Core\Type\DateType as TypeDateType;
  10. use Symfony\Component\Form\Extension\Core\Type\EmailType;
  11. use Symfony\Component\Form\Extension\Core\Type\FileType;
  12. use Symfony\Component\Form\Extension\Core\Type\HiddenType;
  13. use Symfony\Component\Form\Extension\Core\Type\PasswordType;
  14. use Symfony\Component\Form\Extension\Core\Type\RepeatedType;
  15. use Symfony\Component\Form\Extension\Core\Type\TextType;
  16. use Symfony\Component\Form\FormBuilderInterface;
  17. use Symfony\Component\OptionsResolver\OptionsResolver;
  18. use Symfony\Component\Validator\Constraints\File;
  19. use Symfony\Component\Validator\Constraints\Image;
  20. use Symfony\Component\Validator\Constraints\Length;
  21. use Symfony\Component\Validator\Constraints\NotBlank;
  22. class UserType extends AbstractType
  23. {
  24.     public function buildForm(FormBuilderInterface $builder, array $options): void
  25.     {
  26.         $builder
  27.             ->add('firstname'TextType::class, [
  28.                 'label' => 'Prénom*'
  29.             ] )
  30.             ->add('lastname'TextType::class, [
  31.                 'label' => 'Nom*'
  32.             ])
  33.             ->add('birthdate'TypeDateType::class,[
  34.                 'label' => 'Date de naissance*',
  35.                 'years' => range(1950,2050)
  36.             ])
  37.             ->add('email'EmailType::class, [
  38.                 'required' => true,
  39.                 'label' => 'Email*'
  40.             ])
  41.             ->add('password'RepeatedType::class, [
  42.                 'type' => PasswordType::class,
  43.                 'invalid_message' => 'Les mots de passe doivent être identiques.',
  44.                 'options' => ['attr' => ['class' => 'password-field']],
  45.                 'required' => true,
  46.                 'first_options'  => ['label' => 'Mot de passe*'],
  47.                 'second_options' => ['label' => 'Confirmez le mot de passe*'],
  48.                 'constraints' => [
  49.                         new NotBlank([
  50.                             'message' => 'Un mot de passe est nécessaire',
  51.                         ]),
  52.                         new Length([
  53.                             'min' => 6,
  54.                             'minMessage' => 'Votre mot de passe doit contenir au moins {{ limit }} caractères',
  55.                             // max length allowed by Symfony for security reasons
  56.                             'max' => 4096,
  57.                         ]),
  58.                     ],
  59.                 ])
  60.             
  61.             ->add('roles'ChoiceType::class, [
  62.                 'label' => 'Etes-vous ?',
  63.                 'choices' => [
  64.                     'Joueur' => 'ROLE_PLAYER',
  65.                     'Entraineur' => 'ROLE_COACH'
  66.                 ],
  67.                 'multiple' => true,
  68.                 'expanded' => true
  69.             ])         
  70.             
  71.             
  72.             
  73.              ->add('status'HiddenType::class, [
  74.                 'data' => '1',
  75.                 ])
  76.             /*->add('slug') */
  77.             ->add('picture'FileType::class,[
  78.                 'label' => 'Ton avatar ou photo (jpg, png)',
  79.                 'mapped' => false,
  80.                 'required' => false,
  81.                 /* 'constraints' => [
  82.                     new File([
  83.                         'maxSize' => '1024k',
  84.                         'mimeTypes' => [
  85.                             'image/jpg',
  86.                             'image/png',
  87.                         ],
  88.                         'mimeTypesMessage' => 'Merci d\'insérer un fichier jpg ou png',
  89.                     ])
  90.                 ], */
  91.             ])
  92.             /*  ->add('city')
  93.             ->add('club', EntityType::class,[
  94.                 'class' => Club::class,
  95.                 'choice_label'=> 'name',
  96.                 'multiple' => false,
  97.                 'expanded' => true,
  98.             ]) */
  99.         ;
  100.     }
  101.     public function configureOptions(OptionsResolver $resolver): void
  102.     {
  103.         $resolver->setDefaults([
  104.             'data_class' => User::class,
  105.         ]);
  106.     }
  107. }