2012-01-12 20 views
5

He creado un formulario de registro en el que quiero validar campos. En mi RegistrationFormType que tienen código siguiente:Validar un campo de formulario contra múltiples restricciones

public function getDefaultOptions(array $options) 
    { 
     $collectionConstraint = new Collection(array(
      'email' => new Collection(array(
       new NotBlank(), 
       new Email(array('message' => 'Invalid email addressadsfa')), 
       )), 
      'username' => new Email(array('message' => 'arg Invalid email addressadsfa')), 
      'code' => new MaxLength(array('limit'=>20)), 
      'plainPassword' => new MaxLength(array('limit'=>20)), 
     )); 

     return array(
      'csrf_protection' => false, 
      'validation_constraint' => $collectionConstraint, 
     ); 
    } 

El problema es: La validación de correo electrónico no funciona. ¿Qué estoy haciendo mal?

Respuesta

16

No es necesario que la entrada de correo electrónico sea una Colección, solo use una matriz simple. Entonces:

public function getDefaultOptions(array $options) 
{ 
    $collectionConstraint = new Collection(array(
     'email' => array(
      new NotBlank(), 
      new Email(array('message' => 'Invalid email addressadsfa')), 
     ), 
     'username' => new Email(array('message' => 'arg Invalid email addressadsfa')), 
     'code' => new MaxLength(array('limit'=>20)), 
     'plainPassword' => new MaxLength(array('limit'=>20)), 
    )); 

    return array(
     'csrf_protection' => false, 
     'validation_constraint' => $collectionConstraint, 
    ); 
} 
Cuestiones relacionadas