2013-02-08 72 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