src/Form/SubscriberType.php line 15

Open in your IDE?
  1. <?php
  2. namespace App\Form;
  3. use Symfony\Component\Form\AbstractType;
  4. use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
  5. use Symfony\Component\Form\Extension\Core\Type\EmailType;
  6. use Symfony\Component\Form\FormBuilderInterface;
  7. use Symfony\Component\OptionsResolver\OptionsResolver;
  8. use Symfony\Component\Form\Extension\Core\Type\SubmitType;
  9. use Symfony\Component\Validator\Constraints\Length;
  10. use Symfony\Component\Validator\Constraints\NotBlank;
  11. use Symfony\Component\Validator\Constraints\Email;
  12. class SubscriberType extends AbstractType
  13. {
  14.     /**
  15.      * {@inheritdoc}
  16.      */
  17.     public function buildForm(FormBuilderInterface $builder, array $options)
  18.     {
  19.         $builder->
  20.             add('email'EmailType::class, array(
  21.                 'label' => 'Email',
  22.                 'trim' => true,
  23.                 'constraints' => [
  24.                     new NotBlank(['message' => 'El campo "Email" es obligatorio']),
  25.                     new Email(['message' => 'El campo "Email" no es correcto prueba otra vez']),
  26.                     new Length(['max' => 255'maxMessage' => 'El campo "Email" no puede exceder los 255 caracteres'])
  27.                 ],
  28.                 'error_bubbling' => true,
  29.             ))->
  30.             add('legal'CheckboxType::class, array(
  31.                 'label' => 'He leído y acepto la política de privacidad *',
  32.                 'error_bubbling' => true,
  33.                 'mapped' => false
  34.             ))->
  35.             add('send'SubmitType::class, array('label' => 'Suscribir'))
  36.             ->setAction($options['url']);
  37.         return $builder;
  38.     }
  39.     /**
  40.      * {@inheritdoc}
  41.      */
  42.     public function configureOptions(OptionsResolver $resolver)
  43.     {
  44.         $resolver->setDefaults(array(
  45.             'data_class' => null,
  46.             'url' => null
  47.         ));
  48.     }
  49. }