<?php
namespace App\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
use Symfony\Component\Form\Extension\Core\Type\EmailType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Validator\Constraints\Length;
use Symfony\Component\Validator\Constraints\NotBlank;
use Symfony\Component\Validator\Constraints\Email;
class SubscriberType extends AbstractType
{
/**
* {@inheritdoc}
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->
add('email', EmailType::class, array(
'label' => 'Email',
'trim' => true,
'constraints' => [
new NotBlank(['message' => 'El campo "Email" es obligatorio']),
new Email(['message' => 'El campo "Email" no es correcto prueba otra vez']),
new Length(['max' => 255, 'maxMessage' => 'El campo "Email" no puede exceder los 255 caracteres'])
],
'error_bubbling' => true,
))->
add('legal', CheckboxType::class, array(
'label' => 'He leído y acepto la política de privacidad *',
'error_bubbling' => true,
'mapped' => false
))->
add('send', SubmitType::class, array('label' => 'Suscribir'))
->setAction($options['url']);
return $builder;
}
/**
* {@inheritdoc}
*/
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => null,
'url' => null
));
}
}