我想通过在 Controller 的构造函数中使用我的库来检查用户是否登录到 CodeIgniter。
这是我的图书馆:
class Administrator_libs {
public function validate_authen(){
if( $this->session->userdata('user_authen') ){
redirect(base_url().'admin/login/');
}
}
}
这是我的 Controller :
class Administrator extends CI_Controller {
public function __construct(){
parent::__construct();
$this->load->library('administrator_libs');
$this->administrator_libs->validate_authen();
$this->load->model('mod_menu');
}
}
但我收到此错误消息:
Undefined property: Administrator_libs::$session
如何在 CodeIgniter 的库中使用 session ?
最佳答案
如果您想访问您自己的任何 CodeIgniter 库,您必须调用 get_instance()
。这是因为 $this
绑定(bind)到您当前的库而不是 CodeIgniter 对象。
$CI =& get_instance();
if( $CI->session->userdata('user_authen') ){
redirect(base_url().'admin/login/');
}
请参阅Creating Libraries CodeIgniter 文档。特别是 Utilizing CodeIgniter Resources within Your Library
下的内容假设你在 config/autoload.php
中自动加载 session 库,如果没有,你还需要添加 $CI->load->library("session") ;
$CI
实例化之后。
重要提示 =&
不是拼写错误。它通过引用传递以节省内存。
关于php - 如何在 CodeIgniter 的库中使用 session ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12344653/