src/Form/RegistrationFormType.php line 38

Open in your IDE?
  1. <?php
  2. namespace App\Form;
  3. use App\Entity\TypeAdherent;
  4. use App\Entity\User;
  5. use Doctrine\ORM\EntityRepository;
  6. use Symfony\Bridge\Doctrine\Form\Type\EntityType;
  7. use Symfony\Component\Form\AbstractType;
  8. use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
  9. use Symfony\Component\Form\Extension\Core\Type\PasswordType;
  10. use Symfony\Component\Form\Extension\Core\Type\RepeatedType;
  11. use Symfony\Component\Form\Extension\Core\Type\SubmitType;
  12. use Symfony\Component\Form\Extension\Core\Type\TelType;
  13. use Symfony\Component\Form\Extension\Core\Type\TextType;
  14. use Symfony\Component\Form\FormBuilderInterface;
  15. use Symfony\Component\OptionsResolver\OptionsResolver;
  16. use Symfony\Component\Validator\Constraints\IsTrue;
  17. use Symfony\Component\Validator\Constraints\Length;
  18. use Symfony\Component\Validator\Constraints\NotBlank;
  19. class RegistrationFormType extends AbstractType
  20. {
  21.     public function buildForm(FormBuilderInterface $builder, array $options): void
  22.     {
  23.         $builder
  24.             ->add('societe'TextType::class, [
  25.                 'trim' => true,
  26.                 'label' => 'Raison sociale* : ',
  27.             ])
  28.             ->add('typeAdherent'EntityType::class, [
  29.                 'trim' => true,
  30.                 'label' => 'Vous représentez* : ',
  31.                 'required' => true,
  32.                 'class' => TypeAdherent::class,
  33.                 'query_builder' => function (EntityRepository $er) {
  34.                     return $er->createQueryBuilder('typeAdherent')
  35.                         //retrait du type administateur de la liste
  36.                         ->where('typeAdherent.niveau > 1')
  37.                         ->orderBy('typeAdherent.niveau''ASC');
  38.                 },
  39.                 'choice_label' => 'intitule',
  40.             ])
  41.             ->add('adresse'AdressFormType::class)
  42.             ->add('prenom'TextType::class, [
  43.                 'trim' => true,
  44.                 'label' => 'Prénom* : ',
  45.                 'attr' => array('placeholder' => 'Insérez le prénom'),
  46.             ])
  47.             ->add('nom'TextType::class, [
  48.                 'trim' => true,
  49.                 'label' => 'Nom* : ',
  50.                 'attr' => array('placeholder' => 'Insérez le nom'),
  51.             ])
  52.             ->add('profession'TextType::class, [
  53.                 'trim' => true,
  54.                 'label' => 'Fonction* : ',
  55.             ])
  56.             ->add('telephone'TextType::class, [
  57.                 'trim' => true,
  58.                 'label' => 'Téléphone* : ',
  59.                 'attr' => array('placeholder' => 'Insérez le téléphone'),
  60.             ])
  61.             ->add('fax'TextType::class, [
  62.                 'trim' => true,
  63.                 'label' => 'Fax* : ',
  64.                 'attr' => array('placeholder' => 'Insérez un numéro de fax'),
  65.             ])
  66.             ->add('telephonePortable'TextType::class, [
  67.                 'trim' => true,
  68.                 'label' => 'Portable : ',
  69.                 'required' => false,
  70.             ])
  71.             ->add('email'TextType::class, [
  72.                 'trim' => true,
  73.                 'label' => 'Email* : ',
  74.                 'attr' => array('placeholder' => 'Insérez l\'adresse mail'),
  75.             ])
  76. //----------------------------------------------------------------------------------------
  77.             ->add('password',  RepeatedType::class, array(
  78.                 'type' => PasswordType::class,
  79.                 'required' => true,
  80.                 'invalid_message' => 'Les champs de mot de passe ne sont pas identiques!',
  81.                 'first_options'  => array('label' => 'Mot de passe* : '),
  82.                 'second_options' => array('label' => 'Confirmez le mot de passe* : '),
  83.             ))
  84.             ->add('agreeTerm'CheckboxType::class, [
  85.                 'label' => 'Vous acceptez les conditions d\'utilisation',
  86.                 'mapped' => false,
  87.                 'constraints' => [
  88.                     new IsTrue([
  89.                         'message' => 'Vous devez accepter les conditions d\'utilisation',
  90.                     ]),
  91.                 ],
  92.             ])
  93.             ->add('Enregistrer'SubmitType::class, [
  94.                 'label' => 'Enregistrer'
  95.             ]);
  96.     }
  97.     public function configureOptions(OptionsResolver $resolver): void
  98.     {
  99.         $resolver->setDefaults([
  100.             'data_class' => User::class,
  101.         ]);
  102.     }
  103. }