php - 如何在 CodeIgniter 的库中使用 session ?

标签 php codeigniter controller

我想通过在 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/

相关文章:

php - 在每三个字符实例上拆分一个字符串

php - 如何检查 $_GET 是否为空?

PHP form, when category is selected also add category+.png in another row

php - 如何在 Bootstrap 模式(或对话框)和 codeigniter 内查询数据库

php - POST 数据正在从 HTML 实体中剥离

PHP 到 node.js 的通信

javascript - 如何使用 ci jquery ajax 对连接表进行分组?

java - Spring MVC : processing values from timesheet - multiple objects

asp.net-mvc - 无法在多部分帖子中将 JSON 绑定(bind)到 ASP.NET 模型

asp.net-mvc - 使用 MVC 时,如何调用 Controller Action 并传递文本框值?