2013-02-08 36 views
0

图书馆无法加载笨定制库

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 

我已经加载自定义库在配置/自动加载。 看起来像库没有加载,我也尝试加载它在控制器中,仍然doens't工作! 我该如何解决这个问题?

+0

您的库位于哪个文件夹中?全路径请。 – 2013-02-08 18:48:33

+0

@mamdouhalramadan完整路径是application/libraries/getLang.php – Sarah 2013-02-10 17:35:26

回答

8

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

  1. File names must be capitalized. For example: Myclass.php
  2. Class declarations must be capitalized. For example: class Myclass
  3. Class names and file names must match.

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

在附注上,名为getLang的类听起来不对。这听起来像一种方法。我会建议一个名称,如LanguageTranslator,...

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

+0

非常感谢您的信息。我实际上决定将我的函数包含在另一个加载并运行正常的库中。 – Sarah 2013-02-10 17:38:04