2011-12-06 11 views
11

Sto cercando un modo per convalidare solo un singolo campo (proprietà dell'oggetto) rispetto ai vincoli specificati nelle annotazioni di una particolare entità.Convalidare il campo modulo singolo solo in Symfony2

L'obiettivo è inviare una richiesta AJAX dopo l'evento "onBlur" di un campo modulo, chiedendo al server di convalidare solo questo campo singolo e, in base alla risposta, aggiungere una piccola immagine "OK" accanto a questo campo o un messaggio di errore.

Non voglio convalidare l'intera entità.

Mi chiedo qual è l'approccio migliore per questo problema? Grazie per eventuali suggerimenti.

risposta

18

La classe Validator ha il metodo validateProperty. Si può usare in questo modo:

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

Oppure, se il valore non è impostato nell'entità, è possibile utilizzare il metodo validatePropertyValue:

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

Dai un'occhiata allo validation groups. Penso che questo sia ciò di cui hai bisogno. Potresti aggiungere un gruppo "ajax" o semplicemente aggiungendo il vincolo ad esso. Quindi dì al validatore di usare quel gruppo. I documenti di symfony2 hanno un esempio incluso.

+0

Puoi pls danno il codice di esempio sudo ecc –

Problemi correlati