2012-07-24 11 views
5

Mi validation.yml:Symfony-2 da mensaje de error más de una validación se da

task: 
     - Email: 
       message: The email "{{ value }}" is not a valid email. 
     - MinLength: { limit: 50, message: You must be 50 or under to enter. } 

Mi problema es que si doy "mal-mail" en el campo de trabajo que da dos mensajes de error:

The email "wrong-email" is not a valid email. 
You must be 50 or under to enter. 

En realidad, quiero mostrar un solo mensaje de error a la vez. Eso significa que debe verificar la validación "MinLength" solo si es un correo electrónico válido.

Respuesta

6

La secuencia de validación se puede realizar mediante secuencias de grupos. Repare las secuencias de grupo para el controlador YAML solo hoy, por lo que es posible que deba esperar la próxima versión de la rama 2.0 o principal.

MyEntity: 
    group_sequence: [MyEntity, Extra] 
    properties: 
     task: 
      - Email: { message: ... } 
      - MinLength { limit: 50, message: ..., groups: Extra } 

Ahora las restricciones en el grupo "extra" sólo será valida si todas las restricciones en el grupo "myEntity" (es decir, el grupo predeterminado) a tener éxito.

+1

Su descripción hace que suene como una validación fallida en otro campo (que cae en el grupo MyEntity predeterminado) detendría la validación 'MinLength' incluso si se pasa 'Correo electrónico'. Es ese el caso? Me gustaría una solución donde cada campo se valide hasta que falle, independientemente de los otros campos. – Craig

+1

Buscando una solución similar también @Craig. Algo así como la opción 'breakChainOnFailure' esos días en ZF1: http://framework.zend.com/manual/1.12/en/zend.form.elements.html - ¿Tenemos esto en SF2 @webmozart? – webDEVILopers

Cuestiones relacionadas