无法加载Codeigniter自定义库

时间:2013-02-08 18:42:33

标签: codeigniter

class getLang {
   public function getText($en, $ar) {
      $CI =& get_instance();
      $lang = $CI->session->userdata('language');
      if ($lang == 'en') {
         $string = $en;
      } else if ($lang == 'ar') {
         if (!empty($ar)) {
            $string = $ar;   
         } else if (empty ($ar)) {
            $string = $en;
         }
      }
      return $string;
   }
}

控制器

class Home extends MY_Controller {
   public function test() {
      $this->load->library('getLang');
      return $this->getLang->getText('text', '');
   }
}

当我跑回家/测试时,我收到此错误:

A PHP Error was encountered

Severity: Notice

Message: Undefined property: Home::$getLang

Filename: controllers/home.php

Line Number: 6

我已经在config / autoload中加载了自定义库。 看起来没有加载库,我也尝试在控制器中加载它,仍然无法正常工作! 我该如何解决这个问题?

1 个答案:

答案 0 :(得分:8)

CodeIgniter的文档明确指出类名和文件名必须大写。来自the documentation

  
      
  1. 文件名必须大写。例如:Myclass.php
  2.   
  3. 类声明必须大写。例如:class Myclass
  4.   
  5. 班级名称和文件名必须匹配。
  6.   

这可能是因为它没有正确加载。

在旁注中,名为getLang的类听起来不对。这听起来像一种方法。我建议使用LanguageTranslator,...等名称。

编辑:文档还要求使用名称的小写版本来访问您的库。示例:$this->getlang->getText(...)