src/Form/Publico/Registro/RegistroUsuarioType.php line 19

Open in your IDE?
  1. <?php
  2. namespace App\Form\Publico\Registro;
  3. use App\Entity\Ajustes\Direccion;
  4. use App\Entity\Ajustes\Usuario;
  5. use App\Form\Inc\AgreeTermsType;
  6. use App\Form\Inc\IdiomasType;
  7. use App\Form\Inc\RecaptchaType;
  8. use Symfony\Component\Form\AbstractType;
  9. use Symfony\Component\Form\FormBuilderInterface;
  10. use App\Form\Inc\RepeatedPasswordType;
  11. use App\Form\Inc\SubmitFormType;
  12. use App\Form\Privado\Entidades\Ajustes\DireccionType;
  13. use Doctrine\Common\Collections\ArrayCollection;
  14. use Symfony\Component\Form\CallbackTransformer;
  15. use Symfony\Component\OptionsResolver\OptionsResolver;
  16. class RegistroUsuarioType extends AbstractType
  17. {
  18.     public function buildForm(FormBuilderInterface $builder, array $options)
  19.     {
  20.         $builder
  21.             ->add('password'RepeatedPasswordType::class, [
  22.                 'label' => false,
  23.                 'inherit_data' => true,
  24.             ])
  25.             ->add('name'null, [
  26.                 'label' => 'security.register.form.name',
  27.                 'required' => true,
  28.             ])
  29.             ->add('UsuDni'null, [
  30.                 'label' => 'security.register.form.dni',
  31.                 'required' => true,
  32.             ])
  33.             ->add('surname'null, [
  34.                 'label' => 'security.register.form.surname',
  35.                 'required' => true,
  36.             ])
  37.             ->add('company'null, [
  38.                 'label' => 'security.register.form.company',
  39.                 'required' => false,
  40.             ])
  41.             ->add('language'IdiomasType::class, [
  42.                 'sub_label' => 'idiomas.titulo',        
  43.                 'placeholder' => 'selectores.simple',
  44.                 'required' => true,
  45.             ])
  46.             ->add('email'null, [
  47.                 'label' => 'security.register.form.email.label',
  48.                 'help' => 'security.register.form.email.helper',
  49.             ])
  50.             ->add('phonePre'null, [
  51.                 'label' => 'security.register.form.phoneprefix',
  52.                 'required' => true,
  53.             ])
  54.             ->add('phone'null, [
  55.                 'label' => 'security.register.form.phone',
  56.                 'required' => true,
  57.             ])
  58.             ->add('direcciones'DireccionType::class)
  59.             ->add('guardar'SubmitFormType::class, [
  60.                 'sub_label' => 'security.register.form.submit',
  61.                 'translation_domain' => 'security',
  62.                 'sub_extra_class' => 'boto_guardar_cambios_entity btn btn-lg btn-primary w-100 mb-5',
  63.             ])
  64.             ->add('terms'AgreeTermsType::class, [
  65.                 'label' => false,
  66.                 'inherit_data' => true,
  67.             ])
  68.             ->add('captcha'RecaptchaType::class, [
  69.                 'action_name_captcha' => 'registro_usuarios',
  70.             ])
  71.         ;
  72.         $builder->get('direcciones')
  73.             ->addModelTransformer(new CallbackTransformer(
  74.                 function ($direccionesArray) {
  75.                     return count($direccionesArray) > $direccionesArray[0] : new Direccion();
  76.                 },
  77.                 function ($direccionesArray) {
  78.                     $collection = new ArrayCollection();
  79.                     foreach ($direccionesArray as $dir) {
  80.                         $collection->add($dir);
  81.                     }
  82.                     return $collection;
  83.                 }
  84.             ))
  85.         ;
  86.     }
  87.     public function configureOptions(OptionsResolver $resolver)
  88.     {
  89.         $resolver->setDefaults([
  90.             'data_class' => Usuario::class,
  91.             'translation_domain' => 'security',
  92.         ]);
  93.     }
  94. }