1

我正在使用 CodeIgniter。我有一个名为的控制器,我有名为、和的abc函数。indexabc

www.example.com/abc/

我希望该用户只能访问他登录的区域。

www.example.com/abc/                    //if loggged in else back to homepage

或者

 www.example.com/abc/a/                    //if loggged in else back to homepage

现在检查登录。我用:

if($this->auth->is_logged_in()) { .. } else { redirect('/'); }

每个功能单独。

有没有其他方法可以做到这一点??

4

2 回答 2

2

我认为你可以通过重写构造函数并在其中调用你的函数来做到这一点。

<?php
class Blog extends CI_Controller {

       public function __construct()
       {
            parent::__construct();
            // check login
       }
}
?>
于 2013-09-13T21:52:03.553 回答
1

对于特定的控制器,您可以将您的 if 检查放入constructor控制器的,这样当调用控制器的任何方法时,它将通过您的 if 检查

class Abc extends CI_Controller {

       public function __construct()
       {
            parent::__construct();
            //your if goes here
       }
}

如果您想检查整个应用程序中的用户是否已登录,您可以使用构造函数方法__construct()CI_Controller以便在用户访问应用程序中的任何控制器时对其进行验证

class CI_Controller {

    private static $instance;

    /**
     * Constructor
     */
    public function __construct()
    {
           //your if goes here

    }

 }
于 2013-09-13T22:00:40.600 回答