在codeigniter中表单验证自定义消息?

时间:2012-09-18 08:30:05

标签: php codeigniter validation

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

前: -

  

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

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

         "The Rank field is required."

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

  

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

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

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

3 个答案:

答案 0 :(得分:4)

如果您想要永久覆盖错误消息,只需将其硬编码到 form_validation_lang.php 文件中即可。
(位于 system / language / english

您希望选择扩展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.";

答案 1 :(得分:1)

来自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

答案 2 :(得分: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;
    }

}

适合我:)