zero3412 发表于 2010-6-11 01:04:37

关于用户登录状态

function index()
{
if ($this->admin_islogin())
{
   redirect('去成功后页面');
}
$this->load->view('视图');
}

function admin_islogin()
{
//详细代码不贴了
//通过COOKIE读取用户资料,如果OK就返回登录成功,不然跳转到登录页
}

我想问的是如何将 admin_islogin() 这个方法用于所有的控制器中
不然我每个控制器中都写一段这方法觉得没有必要,不用CI的话,我全写在一个php文件中,然后包含进来就可以了。
我是新手,请大家出出主意,谢谢。

haohailuo 发表于 2010-6-11 07:24:07

本帖最后由 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);
        }
}

zero3412 发表于 2010-6-11 15:38:16

谢谢haohailuo
对于类的继承还搞不太明白,略有些明白;

乌有 发表于 2010-6-12 09:53:38

我一般是写在辅助函数里.再在构造函数里调用..
别拘束于是否像原生php里的require就可以了..
require也是一句,$this->helper->method也是一句...

codeigniter_lht 发表于 2013-3-29 14:36:52

:victory::victory::victory::victory::victory::victory:
页: [1]
查看完整版本: 关于用户登录状态