Php 无法访问钩子-代码iginitor中的用户数据
这是我的hooks.phpPhp 无法访问钩子-代码iginitor中的用户数据,php,codeigniter-2,Php,Codeigniter 2,这是我的hooks.php $hook['pre_controller'] = array( 'class' => 'UpdateSession', 'function' => 'index', 'filename' => 'UpdateSession.php',
$hook['pre_controller'] = array(
'class' => 'UpdateSession',
'function' => 'index',
'filename' => 'UpdateSession.php',
'filepath' => 'hooks',
'params' => array()
);
这是我的UpdateSession.php,放在hooks文件夹中
<?php
class UpdateSession extends CI_Controller
{
public function __construct()
{
$this->CI =& get_instance();
$this->CI->load->library("session");
}
public function index()
{
if($this->CI->session->userdata('user_id'))
{
$query = $this->CI->db->get_where('cp_sessions', array('user_id' => $this->CI->session->userdata('user_id')));
$session_info = $query->row_array();
if($session_info['session_id'] != $this->CI->session->userdata('user_id'))
{
$new_session_id = array('session_id' => $this->CI->session->userdata('user_id'));
$this->db->update('cp_sessions', $new_session_id, array('user_id' => $this->CI->session->userdata('user_id')));
}
}
}
}
我试图删除extends
CI\u Controller
,但也存在同样的问题。如果使用pre-Controller钩子,则表示在加载控制器之前调用类。因此,您无法在此钩子中获取CI实例,因为CI尚未加载
在某些钩子中无法获取CI实例:
- 不能:前置系统,前置控制器
- CAN:post\U控制器\U构造函数、post\U控制器、显示\U覆盖、缓存\U覆盖、post\U系统
Fatal error: Call to a member function library() on a non-object in
C:\xampp\htdocs\website\pokeradda\application\hooks\UpdateSession.php on line 8