如何访问routes.php中的codeigniter会话类?
除非用户具有管理员权限($this->session->userdata('logged')
),否则我需要该类将所有请求(/login除外)路由到某个控制器。
所有的路由规则都在工作,我只需要访问那个类。
发布于 2013-02-11 20:27:42
您通常无法从配置和路由文件访问Singleton ($this->),因为此时没有装入类
尽管有一些解决方法可以访问会话,但更好的方法是使用MY_Controller & _remap()函数:
http://ellislab.com/codeigniter/user-guide/general/controllers.html#remapping
下面是一些示例代码,详细解释了它们的工作原理:
http://www.codebyjeff.com/blog/2012/11/ci-_remap-function-the-friend-you-never-knew-you-had
发布于 2013-02-11 21:02:14
创建此MY_Controller
并将其存储在application/core/
中,然后让其他控制器对其进行扩展:
<?php if (! defined('BASEPATH')) exit('No direct script access');
class MY_Controller extends CI_Controller {
function __construct() {
parent::__construct();
$this->_check_auth();
}
private function _check_auth(){
if(!$this->session->userdata('is_admin')){
$this->session->sess_destroy();
redirect('login');
}
}
}
注意:上面的代码假设您已经有了一个用户登录系统。
https://stackoverflow.com/questions/14811599
复制相似问题