如何初始化codeigniter会话数据?

时间:2012-01-16 13:55:03

标签: codeigniter

我正在使用codeigniter会话类(自动加载)。如何设置初始值?我需要这个,因为我想初始化默认语言。

最好的问候......

1 个答案:

答案 0 :(得分:3)

要将数据初始化到会话中,您可以使用hooks

您可以使用post_controller_constructor挂钩(在pre_controller挂钩中,会话可能尚未加载)。

打开config/hooks.php并添加:

$hook['post_controller_constructor'][] = array(
                                'class'    => 'SessionData',
                                'function' => 'initializeData',
                                'filename' => 'SessionData.php',
                                'filepath' => 'hooks',
                                'params'   => array()
                                );

然后在hooks文件夹中创建一个名为SessionData.php的文件,其中包含以下内容:

<?php if (!defined('BASEPATH')) exit('No direct script access allowed');

class SessionData{
    var $CI;

    function __construct(){
        $this->CI =& get_instance();
    }

    function initializeData() {
          // This function will run after the constructor for the controller is ran
          // Set any initial values here
          if(!$this->session->userdata('language')){
             $this->CI->session->set_userdata('language', 'English');
          }
    }
}
?>