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

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

  •  19-10-2022
  •  | 
  •  

문제

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')
    ));     
}
도움이 되었습니까?

해결책

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

다른 팁

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;
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top