2

每次调用任何控制器时都执行一些代码会非常有用,例如身份验证检查(查看用户是否登录,检查他们的用户名)和我的优先级,以记录页面 url 并能够在下一页加载时回显上一页。

每次调用控制器时,我将如何执行类似的操作?

function page_load(){
    $this->session->set_flashdata('prev_page', $this->uri->uri_string());
    if($this->tank_auth->is_logged_in()){
        $username = $this->tank_auth->get_username;
    } else {
        $username = 'Guest';
    }
}
4

2 回答 2

4

您可以使用 CodeIgniter Hooks 扩展核心: http: //ellislab.com/codeigniter/user_guide/general/hooks.html

这将与核心一起执行,所以在每一页上!

于 2013-07-16T11:29:25.320 回答
4

您可以通过扩展 Controller 类来做到这一点。

<?php
class MY_Controller extends CI_Controller {

   public function __construct()
   {
        parent::__construct();
        // Your own constructor code
        // Do any code you want run every time a controller loads
   }
}
?>

然后在您将扩展 CI_Controller 的控制器中,改为扩展 My_Controller。

class Welcome extends MY_Controller {

  function __construct()
  {
    parent::__construct();
  }

  function index()
  {
    $this->load->view('welcome_message');
  }
}

在此处查看文档

于 2013-07-16T11:32:46.790 回答