Symfony2: validation constraint ignored when submitting form and with multiple validation groups

StackOverflow https://stackoverflow.com/questions/22155666

  •  19-10-2022
  •  | 
  •  

Pergunta

Problem:

The Length constraint is ignored when submitting my form.

Entity:

/**
 * @Assert\Length(min = "6")
 * @Assert\NotBlank(groups={"registro"})
 */
private $password;

FormType:

public function setDefaultOptions(OptionsResolverInterface $resolver)
{
    $resolver->setDefaults(array(
    'data_class' => 'BikeApp\UsuariosBundle\Entity\Usuarios',
    'validation_groups' => array('default', 'registro')
    ));     
}
Foi útil?

Solução

According to the constant Symfony\Component\Validator\Constraint::DEFAULT_GROUP, the default validation group is not default but Default.

Outras dicas

For some reason its not getting called from your entity so try adding the validation constraint in your buildForm() method

public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ->add('nombre')
        ->add('apellidos')  
        ->add('email', 'email', array('label' => 'Correo electrónico', 'attr' => array(
            'placeholder' => 'usuario@servidor'
        )))
        ->add('password', 'repeated', array(
            'type' => 'password',
            'invalid_message' => 'Las dos contraseñas deben coincidir',
            'first_options'   => array('label' => 'Contraseña'),
            'second_options'  => array('label' => 'Repite Contraseña'),
            'required'        => true,
            'constraints'     =>array(new Assert\Length(array('min' => 6,'message'=>'La contraseña debe tener al menos {{ limit }} carácteres')))
            ))
        ->add('fechaNacimiento', 'birthday', array('required'=> false, 'widget' => 'single_text'))
        ->add('dni')
        ->add('newsletter', 'checkbox', array('required' => false));    
}

Don't forget to add use before your form class

use Symfony\Component\Validator\Constraints as Assert;
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top