【问题标题】:Unable to load the requested language file: language/en/form_validation_lang.php无法加载请求的语言文件:language/en/form_validation_lang.php
【发布时间】:2015-04-27 13:17:13
【问题描述】:

我正在使用 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;
    }
}

解决办法是什么?

【问题讨论】:

  • 确保 /application/language/en/form_validation_lang.php 存在。并检查 $config['language'] 是否设置正确。
  • 你是如何加载 form_validation 库的?
  • $this->load->library('form_validation');我通过这样调用它来加载库。
  • 您尝试过$this->lang->load('form_validation', 'english') 如果您尝试从系统文件夹中调用,则无需。请向您的控制器显示您遇到问题的地方。
  • 但我不想调用 form_validation 的 lang 我不需要那个

标签: php codeigniter


【解决方案1】:

CI form_validation 库使用语言文件来显示错误消息。您正在使用required valid_email 那些错误消息写在form_validation_lang.php 中。

form_validation library 会自动加载语言文件(form_validation_lang.php),无论你是否加载。你可以打开 library 文件并查看 run 函数你会看到一行 $this->CI->lang->load('form_validation');

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

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

【讨论】:

    【解决方案2】:

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

    对于 formvalidation,CI 使用 system/language 文件夹

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

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

    $config['language'] = 'en';
    

    查看您的system/language 文件夹并查看是否有一个名为“en”的文件夹以及其中是否有form_validation_lang.php 文件。

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

    【讨论】:

      【解决方案3】:

      转到application/config/config.php 你应该有$config['language'] = 'en';。 将其更改为$config['language'] = 'english';

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-05-23
        • 2014-02-11
        • 2013-12-01
        • 1970-01-01
        • 2012-05-25
        • 2018-07-20
        相关资源
        最近更新 更多