2011-12-06 20 views
11

Estoy buscando una forma de validar solo un campo (propiedad del objeto) frente a las restricciones especificadas en las anotaciones de una entidad en particular.Validar solo campo de formulario solo en Symfony2

El objetivo es enviar una solicitud AJAX después del evento "onBlur" de un campo de formulario, solicitando al servidor que valide solo este campo y, dependiendo de la respuesta, agregue una pequeña imagen "OK" junto a este campo o un mensaje de error.

No quiero validar la entidad completa.

Me pregunto cuál es el mejor enfoque para este problema? Gracias por cualquier consejo.

Respuesta

18

La clase Validator tiene el método validateProperty. Se puede utilizar de esta manera:

$violations = $this->get('validator')->validateProperty($entity, 'propertyName'); 
if (count($violations)) { 
    // the property value is not valid 
} 

O, si el valor no está establecido en la entidad, se puede utilizar el método de validatePropertyValue:

$violations = $this->get('validator')->validatePropertyValue($entity, 'propertyName', $propertyValue); 
if (count($violations)) { 
    // the property value is not valid 
} 
5

Eche un vistazo a validation groups. Creo que esto es lo que necesitas. Podría agregar un grupo "ajax" o simplemente agregarle una restricción. Luego dígale al validador que use ese grupo. Los documentos symfony2 tienen un ejemplo incluido.

+0

¿Puede PLS dar el código de ejemplo sudo etc. –

Cuestiones relacionadas