CodeIgniter:My_Lang中的get_instance

时间:2011-09-25 14:46:34

标签: php class function codeigniter loader

我发现了这个有用的国际化代码:

http://pastebin.com/SyKmPYTX

一切正常,但我无法在此课程中使用CI函数。

我想从DB中设置$ languages和$ special变量。

但是当我使用$ CI =& get_instance();在实例中它显示以下错误:

致命错误:第231行的/system/core/CodeIgniter.php中找不到“CI_Controller”类

2 个答案:

答案 0 :(得分:2)

语言类在CodeIgniter实例存在之前加载,这就是您收到错误的原因。

您可以使用post_controller_constructor挂钩来设置变量。

以下是来自CodeIgniter论坛的帖子,其中有人试图做类似的事情:http://codeigniter.com/forums/viewthread/108639/

答案 1 :(得分:0)

最简单的方法

在My_Lang.php中

var $languages = array();

function __construct()
{
parent::__construct();

require_once( BASEPATH .'database/DB'. EXT );
$db =& DB();
$query = $db->query( 'SELECT * FROM languages');
$result = $query->result();

foreach( $result as $row )
{
$this->languages[$row->short_name] = $row->full_name;
}
}

我这样做并且工作正常:))我还在foreach中添加了 default_uri