所以我很难让我的钩子实际做任何事情。我想在每次呈现视图之前设置几个会话变量。我把它放在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负责的不是加载两次,而是每次尝试加载初始值。你可以通过启用日志来检查是否发生了双重加载,你会发现一条消息警告你。