CodeIgniter:max_length [x]的set_message

时间:2009-11-08 19:52:18

标签: codeigniter error-handling validation

如何为max_lengthmin_length规则设置错误消息。例如,如果我设置了规则max_length[6],我希望显示错误消息 Max characters allowed: 5

6 个答案:

答案 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

注意:这也适用于“最小长度”规则。