CodeIgniter:My_Lang 中的 get_instance

Posted

技术标签:

【中文标题】CodeIgniter:My_Lang 中的 get_instance【英文标题】:CodeIgniter: get_instance inside My_Lang 【发布时间】:2011-11-24 15:57:17 【问题描述】:

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

http://pastebin.com/SyKmPYTX

除了我无法在这个类中使用 CI 函数之外,一切都很好。

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

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

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

【问题讨论】:

【参考方案1】:

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

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

这是 CodeIgniter 论坛中的一个帖子,有人试图做类似的事情:http://codeigniter.com/forums/viewthread/108639/

【讨论】:

【参考方案2】:

最简单的方法

在 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

【讨论】:

以上是关于CodeIgniter:My_Lang 中的 get_instance的主要内容,如果未能解决你的问题,请参考以下文章

从 Codeigniter Active Record 中的子查询中选择

Ubuntu 上的 Codeigniter 没有欢迎消息

如何在codeigniter中显示json数据[重复]

CodeIgniter AJAX 错误返回同一页面

无法在 Codeigniter 中使用 jquery 设置正确的图像路径

如何自定义 Sphinx 的代码块语言?