我的自定义库函数不起作用

My custom library function is not working

我的图书馆出现错误

Undefined property: Authenticate::$ci

这是我自定义的库函数

function is_logged_in() {

  $sessionid = $this->ci->session->userdata('moderId');

  if($sessionid) {
    return isset($sessionid);
  } else if(!$sessionid) {
    redirect(base_url() . 'moderator');
  }

}

这是我的控制器

class B2bcategory extends CI_Controller {

    function __construct() {
        parent::__construct();
        $this->load->model('moderator/b2bcategory_model');

        $this->authenticate->is_logged_in();
    }
}

我没看到你是否在库的构建区域加载了 get_instance(),在你的验证库中尝试这样的东西

文件名:Authenticate.php

<?php

class Authenticate {

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

    function is_logged_in() {

       $sessionid = $this->CI->session->userdata('moderId');

       if($sessionid) {
          return isset($sessionid);
       } else if(!$sessionid) {
          redirect(base_url() . 'moderator');
       }

    }
}

我发现在您的图书馆 get_instance 上 $this->CI 似乎效果更好。

如果您没有自动加载它,请在控制器上加载库。

文件名:B2bcategory.php

<?php

class B2bcategory extends CI_Controller {

   public function __construct() {
    parent::__construct();
     // Or Auto load it
     $this->load->library('authenticate');
     $this->load->model('moderator/b2bcategory_model');
     $this->authenticate->is_logged_in();
   }

}
$this->load->model('moderator/b2bcategory_model', 'authenticate');

$this->load->model('REAL_MODEL_PATH', 'PROPERTY_IN_CONTROLLER')

用法 $this->PROPERTY_IN_CONTROLLER->library_method()

但最好的方法是在 application/core 中创建 ModeratorController.php

ModeratorController extends CI_Controller
{
     public function __construct()
     {
          parent::__construct();

          if($this->session->userdata('moder_id') === false)
          {
              redirect('site/moder_login');
          }
     }
}

并且所有现代控制器都从这个控制器扩展