Php 带有get_实例()的Codeigniter 3;在钩子文件中

Php 带有get_实例()的Codeigniter 3;在钩子文件中,php,codeigniter,codeigniter-3,Php,Codeigniter,Codeigniter 3,我在hook文件夹中有一个这样的类 class CheckAuth { protected $CI; public function __construct() { $this->CI = get_instance(); } public function check() { $router =& load_class('Router', 'core'); // $controller

我在hook文件夹中有一个这样的类

class CheckAuth {
    protected $CI;

    public function __construct()
    {
        $this->CI = get_instance();
    }
    public function check()
    {
        $router =& load_class('Router', 'core');
        // $controller = $this->CI->router->class;
        $controller = $router->fetch_class();
        $method     = $router->fetch_method();

        if($controller!='auth')
        {
            echo $this->CI->userdata('admin_id');
        }
    }
}
当我得到一个会话时,我显示错误

致命错误:对非对象$this->CI调用成员函数userdata(),返回null

试试这个,它会有用的

    public function __construct()
    {

    }
    public function check()
    {
        $this->CI = get_instance();

        $router =& load_class('Router', 'core');
        // $controller = $this->CI->router->class;
        $controller = $router->fetch_class();
        $method     = $router->fetch_method();

        if($controller!='auth')
        {
            echo $this->CI->userdata('admin_id');
        }
    }

这是因为CI尚未加载到某些挂钩点(pre_控制器、pre_系统)。您可能正在尝试在其中的一些中加载类