库
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中加载了自定义库。 看起来没有加载库,我也尝试在控制器中加载它,仍然无法正常工作! 我该如何解决这个问题?
答案 0 :(得分:8)
CodeIgniter的文档明确指出类名和文件名必须大写。来自the documentation:
- 文件名必须大写。例如:Myclass.php
- 类声明必须大写。例如:class Myclass
- 班级名称和文件名必须匹配。
醇>
这可能是因为它没有正确加载。
在旁注中,名为getLang
的类听起来不对。这听起来像一种方法。我建议使用Language
,Translator
,...等名称。
编辑:文档还要求使用名称的小写版本来访问您的库。示例:$this->getlang->getText(...)