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


CodeIgniter: How to set session and/or controller variables in hooksr?

所以我很难让我的钩子实际做任何事情。我想在每次呈现视图之前设置几个会话变量。我把它放在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');
    }
}

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

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

请尝试自动加载会话库。