我的库中出现错误
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();
}
}
答案 0 :(得分:0)
我没看到你是否在库的构造区域中加载了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();
}
}
答案 1 :(得分:0)
$this->load->model('moderator/b2bcategory_model', 'authenticate');
$ this-&gt; load-&gt; model('REAL_MODEL_PATH','PROPERTY_IN_CONTROLLER')
USAGE $ this-&gt; PROPERTY_IN_CONTROLLER-&gt; 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');
}
}
}
所有现代控制器都从此控制器扩展