CodeIgniter:如何在hooksr中设置会话和/或控制器变量?

时间:2011-07-07 20:34:45

标签: php codeigniter

所以我无法让我的钩子做任何事情。我想在每次渲染视图之前设置一些会话变量。我把它放在我的config / hooks.php中:

$hook['post_controller_constructor'] = array(
    'class'    => 'Permissions',
    'function' => 'can_view',
    'filename' => 'pre_hooks.php',
    'filepath' => 'hooks');

我还在配置文件中启用了挂钩:

$config['enable_hooks'] = TRUE;

我正在尝试的代码:

<?php
class Permissions {
    var $CI;

    public function __construct() {
        $this->CI = &get_instance();
        $this->CI->load->library("session");
    }

    public function can_view(){
        $this->CI->session->set_userdata('test','test');
    }
}

会话变量的简单回显不起作用,但是当我在控制器中设置会话变量时,它可以工作......

1 个答案:

答案 0 :(得分:1)

没有显示某些控制器的代码,但如果您正在加载会话库两次,在挂钩和控制器代码中,可能是第二次加载重新初始化$ this-&gt; CI-&gt;会话。 CI负责两次加载,但每次尝试都需要初始化。 您可以通过启用日志来检查是否发生了双重加载,您会发现一条警告您的消息。

请尝试自动加载会话库。