Cha*_*Sam 10 php controller codeigniter
我想通过在控制器的构造函数中使用我的库来检查用户是否登录了CodeIgniter.
这是我的图书馆:
class Administrator_libs {
public function validate_authen(){
if( $this->session->userdata('user_authen') ){
redirect(base_url().'admin/login/');
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的控制器:
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');
}
}
Run Code Online (Sandbox Code Playgroud)
但我收到此错误消息:
Undefined property: Administrator_libs::$session
Run Code Online (Sandbox Code Playgroud)
如何在CodeIgniter中的库中使用会话?
Jor*_*eno 30
如果要访问自己内部的任何CodeIgniter库,则必须调用get_instance().这是因为$this绑定到当前库而不是CodeIgniter对象.
$CI =& get_instance();
if( $CI->session->userdata('user_authen') ){
redirect(base_url().'admin/login/');
}
Run Code Online (Sandbox Code Playgroud)
请参阅创建库 CodeIgniter文档.特别是在您的库中使用CodeIgniter资源下的内容
这假设您自动加载会话库config/autoload.php,如果没有,您还需要$CI->load->library("session");在$CI实例化后添加.
重要提示: =&不是拼写错误.它通过引用传递以节省内存.