关于用户登录状态
function index(){
if ($this->admin_islogin())
{
redirect('去成功后页面');
}
$this->load->view('视图');
}
function admin_islogin()
{
//详细代码不贴了
//通过COOKIE读取用户资料,如果OK就返回登录成功,不然跳转到登录页
}
我想问的是如何将 admin_islogin() 这个方法用于所有的控制器中
不然我每个控制器中都写一段这方法觉得没有必要,不用CI的话,我全写在一个php文件中,然后包含进来就可以了。
我是新手,请大家出出主意,谢谢。 本帖最后由 haohailuo 于 2010-6-11 07:26 编辑
你可以把判断的代码放在公共函数库中,或者可以自己扩展一个父类继承Controller类,然后再继承此类即可,例如:
class Ha_Controller extends Controller {
/**
* @var Admin
*/
public $admin;
/**
* @var Hcache
*/
public $hcache;
/**
* @var Common
*/
public $common;
/**
* @var Utility
*/
public $utility;
/**
* @var Filemanagement
*/
public $filemanagement;
protected function __construct() {
$this->Ha_Controller();
}
function Ha_Controller(){
parent::Controller();
/** 加载验证库 或者方法,验证是否登录等*/
$this->load->library('admin');
/** 加载后台控制器公共库 */
$this->load->library('form_validation');
/** 加载后台控制器公共模型 */
//$this->load->model('common_model');
/*其他类库或者方法*/
............
}
}
使用demo如下:
class Main extends Ha_Controller {
var $uid;
var $now;
var $username;
var $template = array();
function __construct(){
$this->Main();
}
function Main() {
parent::Ha_Controller ();
//$this->output->enable_profiler();
}
function index(){
if ($this->admin->islogin()) {
redirect('去成功后页面');
}
$this->load->view('precinct/index', $this->template);
}
}
谢谢haohailuo
对于类的继承还搞不太明白,略有些明白; 我一般是写在辅助函数里.再在构造函数里调用..
别拘束于是否像原生php里的require就可以了..
require也是一句,$this->helper->method也是一句... :victory::victory::victory::victory::victory::victory:
页:
[1]