在sfValidator中设置自定义错误消息?

时间:2009-11-26 05:53:26

标签: php forms symfony1

如何在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 个答案:

答案 0 :(得分:2)

您还可以使用setMessage方法:

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

答案 1 :(得分:0)

我从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')),

));

答案 2 :(得分:0)

正如Harish所示,这是要走的路,但是还有一个插件http://www.symfony-project.org/plugins/sfViewableFormPlugin将使用yaml文件来执行应用程序范围的错误消息,并将其与I18N机制结合起来,你会有一个很好的方式显示错误。