【问题标题】:Codeigniter 3 with get_instance(); in hook file带有 get_instance() 的 Codeigniter 3;在挂钩文件中
【发布时间】:2018-03-06 01:09:16
【问题描述】:

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

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。

【问题讨论】:

    标签: php codeigniter codeigniter-3


    【解决方案1】:

    试试这个吧。

        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');
            }
        }
    

    【讨论】:

    • $this->CI = get_instance();没有必要。 $router =& load_class('Router', 'core');足够的。但它有效,谢谢:)
    【解决方案2】:

    这是因为 CI 尚未加载到某些钩子点(pre_controller、pre_system)中。您可能正在尝试在其中的一些中加载类。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-11-20
      • 1970-01-01
      • 1970-01-01
      • 2015-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多