2009-11-26 3 views
1

Comment ajouter un message d'erreur personnalisé dans sfValidator, la forme estPour définir un message d'erreur personnalisé dans sfValidator?

$this->setWidgets(array(
'name' =>new sfWidgetFormInput(), 
'country' =>new sfWidgetFormChoice(array('choices' => CountriesPeer::getAllCountries())), 
)); 

les validateurs

$this->setValidators(array(
'name' =>new sfValidatorString(array('required'=>true)), 
'country' =>new sfValidatorChoice(array('choices' =>  array_keys(CountriesPeer::getAllCountries()))), 

)); 

au lieu de message requis ou invalide je veux un message personnalisé (comme « le nom est nécessaire » 'veuillez sélectionner un pays'). Je sais que nous pouvons définir un message d'erreur personnalisé lors du rendu du formulaire, mais pouvons-nous le définir dans les validateurs de formulaire ??

Répondre

0

la solution que je l'ai eu du livre symfony-froms,

$this->setValidators(array(
'name' =>new sfValidatorString(array('required'=>true),array('required' => 'The name field is required.')), 
'country' =>new sfValidatorChoice(array('choices' =>  array_keys(CountriesPeer::getAllCountries())),array('required' => 'please select a country')), 

)); 
0

comme Harish a montré ci-dessus qui est le chemin à parcourir, mais il y a aussi un plug-in http://www.symfony-project.org/plugins/sfViewableFormPlugin qui utilisera les fichiers YAML pour faire une large application messages d'erreur, et combiner cela avec le mécanisme I18N, vous aurez une belle façon d'afficher les erreurs.

2

Vous pouvez également utiliser la méthode setMessage:

$this->validatorSchema['name']->setMessage('required', 'Name is required');