codeigniter语言更改+数据库交互

时间:2011-12-12 10:15:35

标签: codeigniter

我在网站周围发现了很多像这样的问题,但似乎没有一个像我正在寻找的那样。

我正在使用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对象。

我认为这可能是可行的,我只是遗漏了一些东西或做错了什么。

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

我认为您可以创建My_Controller,创建MY_Controller并添加自定义挂钩点:

class MY_Controller extends Controller {

function MY_Controller()
{
    parent::Controller();
    $GLOBALS['EXT']->_call_hook('pre_controller_constructor');
} 

}

希望有所帮助