我在网站周围发现了很多像这样的问题,但似乎没有一个像我正在寻找的那样。
我正在使用pre_controller挂钩来更改配置语言选项。
function get_language(){
session_start();
if($this->ci->session->userdata('language')){
if($_SESSION['language']){
$language = $_SESSION['language'];
// Load CI config class
$CI_config =& load_class('Config');
// Set the language config. Selects the folder name from its key of 'en'
$CI_config->set_item('language', $language);
// Sets a constant to use throughout ALL of CI.
define('CURRENT_LANGUAGE', $language);
}
}
}
这工作正常,但我也想访问CI对象..我知道因为钩子是预控制器,不起作用。但是,如果我创建钩子post_controller_constructor,语言更改不起作用,因为它已经使用默认语言选项加载。
我可以使用标准的php在钩子中做我想做的事情,但我会更乐意使用CI对象。
我认为这可能是可行的,我只是遗漏了一些东西或做错了什么。
感谢您的帮助!
答案 0 :(得分:1)
我认为您可以创建My_Controller,创建MY_Controller并添加自定义挂钩点:
class MY_Controller extends Controller { function MY_Controller() { parent::Controller(); $GLOBALS['EXT']->_call_hook('pre_controller_constructor'); } }
希望有所帮助