CodeIgniter: get_instance внутри My_Lang - PullRequest
       6

CodeIgniter: get_instance внутри My_Lang

3 голосов
/ 25 сентября 2011

Я нашел этот полезный код интернационализации:

http://pastebin.com/SyKmPYTX

все работает хорошо, за исключением того, что я не могу использовать функции CI внутри этого класса.

Я хочу установить$ languages ​​и $ special variable из DB.

, но когда я использую $ CI = & get_instance ();в экземпляре функции она показывает следующую ошибку:

Неустранимая ошибка: класс 'CI_Controller' не найден в /system/core/CodeIgniter.php в строке 231

Ответы [ 2 ]

2 голосов
/ 25 сентября 2011

Языковой класс загружается до появления экземпляра CodeIgniter, поэтому вы получаете сообщение об ошибке.

Вы можете использовать хук post_controller_constructor для установки переменных.

Вот ветка форумов CodeIgniter, где кто-то пытается сделать нечто подобное: http://codeigniter.com/forums/viewthread/108639/

0 голосов
/ 02 июня 2014

Самый простой способ

в 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;
}
}

я сделал это и работает нормально :)) я также добавил default_uri в foreach.

...