2

在 codeigniter 中,我在许多控制器中使用了 codeigniter 表单验证库,

前任: -

$this->form_validation->set_rules('rank', 'Rank', 'required');

如果表单验证失败,则显示

         "The Rank field is required."

在这里我想显示自定义消息,我可以遵循的一种方法是

$this->form_validation->set_message('必填', '%s不能为空');

如果我使用这种方法,那么我需要在每个控制器中重复这个代码,无论我在哪里使用“必需”表单验证方法

我的问题是有什么方法可以在配置文件中声明此自定义消息并在我使用表单验证规则“必需”时自动使用此自定义消息?

4

3 回答 3

4

如果您想永久覆盖错误消息,只需将其硬编码到form_validation_lang.php文件中。
(位于系统/语言/英语

如果您希望选择扩展 form_validation 类,添加您的自定义所需函数并在 lang 文件中添加适当的错误消息。

例如;

class MY_Form_validation {
    public function custom_required($str) {
        if ( ! is_array($str)) {
            return (trim($str) == '') ? FALSE : TRUE;
        } else {
            return ( ! empty($str));
        }
    }
}

然后在lang文件中;

$lang['custom_required'] = "%s can not be blank.";
于 2012-09-18T08:37:10.963 回答
2

从 CI 文档本身:

“所有本机错误消息都位于以下语言文件中:language/english/form_validation_lang.php

要设置您自己的自定义消息,您可以编辑该文件,或使用以下函数:
$this->form_validation->set_message('rule', 'Error Message');"

http://codeigniter.com/user_guide/libraries/form_validation.html#settingerrors

于 2012-09-18T08:37:17.690 回答
0
class MY_Form_validation extends CI_Form_validation {

    public function __construct()
    {
        parent::__construct();
    }
    function required_select($input)
    {
        $this->set_message('required_select','select %s');
        return FALSE;
    }

}

为我工作:)

于 2014-06-19T17:47:40.803 回答