Чтобы установить пользовательское сообщение об ошибке в sfValidator? - PullRequest
1 голос
/ 26 ноября 2009

Как добавить пользовательское сообщение об ошибке в sfValidator, форма

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

Валидаторы

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

  ));

вместо обязательного или недействительного сообщения. Мне нужно специальное сообщение (например, «требуется имя», «пожалуйста, выберите страну»). Я знаю, что мы можем установить пользовательское сообщение об ошибке при отображении формы, но можем ли мы установить его в валидаторах формы ??

Ответы [ 3 ]

2 голосов
/ 19 января 2010

Вы также можете использовать метод setMessage:

$this->validatorSchema['name']->setMessage('required', 'Name is required');
0 голосов
/ 07 декабря 2009

Как показал Хариш выше, это верный путь, но есть также плагин http://www.symfony -project.org / plugins / sfViewableFormPlugin , который будет использовать файлы yaml для отправки сообщений об ошибках всего приложения, и в сочетании с механизмом I18N у вас будет хороший способ отображения ошибок.

0 голосов
/ 26 ноября 2009

решение, которое я получил из книги 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')),

));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...