无法加载Codeigniter自定义库

Sar*_*rah 0 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;
   }
}
Run Code Online (Sandbox Code Playgroud)

调节器

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

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

A PHP Error was encountered

Severity: Notice

Message: Undefined property: Home::$getLang

Filename: controllers/home.php

Line Number: 6
Run Code Online (Sandbox Code Playgroud)

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

Max*_*rin 8

CodeIgniter的文档清楚地指出类名和文件名必须大写.从文档:

  1. 文件名必须大写.例如:Myclass.php
  2. 类声明必须大写.例如:class Myclass
  3. 类名和文件名必须匹配.

这可能是它没有正确加载的原因.

另一方面,一个名为getLang听起来错误的班级.这听起来像一种方法.我建议的名称,例如Language,Translator,...

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