如何为max_length
和min_length
规则设置错误消息。例如,如果我设置了规则max_length[6]
,我希望显示错误消息
Max characters allowed: 5
答案 0 :(得分:3)
我遇到了同样的问题,即使这篇文章很老,也没有正确的答案..你只需要在邮件的第二位使用字符串占位符%s。在文档(http://codeigniter.com/user_guide/libraries/form_validation.html#settingerrors)中,有一个字段不为空的示例:
$this->form_validation->set_message('username_check', 'The %s field can not be the word "test"');
在那里,它使用%s占位符作为字段名称,但是如果你修改'max_length'消息,将字段名称放在第一位,长度为秒,如下所示:
$this->form_validation->set_message('max_length', 'The field %s max length is %s');
它会起作用。不是最好的解决方案,但那个适用于我。希望它有所帮助
答案 1 :(得分:3)
application / language / en / en_lang.php我有这个:
$lang['name'] = "Name";
$lang['form_required'] = "is required.";
application / language / es / es_lang.php我有这个:
$lang['name'] = "Nombre";
$lang['form_required'] = "es requiero.";
application / controllers / yourController.php我有这个:
$this->form_validation->set_rules('name', $this->lang->line('name'), 'required|alpha|xss_clean');
$this->form_validation->set_message('required', '%s ' . $this->lang->line('form_required'));
我希望这有帮助!
答案 2 :(得分:1)
@Daniel是对的。每CodeIgniter's documentation,您可以覆盖任何验证规则的默认错误消息(例如“min_length”,“max_length”等),如下所示:
$this->form_validation->set_message('validation_rule', 'Your message here');
所以,在你的例子中你可以这样做:
$this->form_validation->set_message('max_length', 'Max characters allowed: 5');
只需包含验证规则所在的位置即可。
答案 3 :(得分:0)
CodeIgniter拥有所有框架中更好的文档之一。阅读他们网站上的用户指南或CI目录中的用户指南。
http://codeigniter.com/user_guide/libraries/form_validation.html#settingerrors
答案 4 :(得分:0)
查看system/language/english/form_validation_lang.php
,您会找到
$lang['max_length'] = "The %s field can not exceed %s characters in length.";
通过将其复制到
可轻松覆盖application/language/english/form_validation_lang.php
将其更改为您想要的字符串。 不直接编辑system/
中的文件,如果升级CodeIgniter,它将被覆盖。
答案 5 :(得分:0)
无需添加新方法。您可以通过访问“ max_length”规则,将自定义消息设置为表单验证错误,如下所示。
UIInputViewController
注意:这也适用于“最小长度”规则。