无法加载请求的语言文件:language/en/form_validation_lang.php

11 php codeigniter

我正在使用codeigniter 2.1.4

我正在使用form_validation库进行表单验证.

当我尝试运行该功能时,我得到以下错误

无法加载请求的语言文件:language/en/form_validation_lang.php

我扫描了所有文件.我没有在任何文件中使用或调用此语言文件,我收到此错误.

function insert(){
    $this->load->library('form_validation');

    $this->form_validation->set_rules('username_field', 'username', 'required');
    $this->form_validation->set_rules('firstname_field', 'firstname', 'required');
    $this->form_validation->set_rules('lastname_field', 'lastname', 'required');
    $this->form_validation->set_rules('email_field', 'email', 'required|valid_email|callback_isEmailExist');

    if ($this->form_validation->run() == FALSE) {

        $this->create();

    }
}

function isEmailExist($email) {
    $this->load->library('form_validation');
    $is_exist = $this->users->isEmailExist($email);

    if ($is_exist) {
        $this->form_validation->set_message(
            'isEmailExist', 'Email address is already exist.'
        );    
        return false;
    } else {
        return true;
    }
}
Run Code Online (Sandbox Code Playgroud)

这是什么解决方案?

Sha*_*lam 9

CI form_validation库使用语言文件显示错误消息.您正在使用required valid_email这些错误消息写在里面form_validation_lang.php.

form_validationform_validation_lang.php无论你是否加载,库都会加载语言文件()本身.你可以打开库文件并查看运行函数,你会看到一行$this->CI->lang->load('form_validation');

此文件位于您的system/language/your_language/application/language/your_language/.

该错误消息说您错过了任何文件夹中的文件.如果您下载原始CI文件,它应该在system/language/english/文件夹内.如果您没有看到文件下载 CI并在那里恢复文件.


小智 7

文件system/language夹中的application/language文件夹2中有两个语言文件位置

对于表单验证,CI使用该system/language文件夹

在你的config.php(在application/config)中,你指定了你想要使用的语言文件夹.

所以,打开你的配置文件并寻找

$config['language'] = 'en';
Run Code Online (Sandbox Code Playgroud)

查看您的system/language文件夹,看看是否有一个名为"en"的文件夹,以及是否有form_validation_lang.php文件.

如果没有,我认为有一个名为的文件夹english.然后解决方案是将'en'配置更改为english.