每个页面加载w / Codeigniter执行代码?

时间:2013-07-16 11:23:10

标签: php codeigniter session

每次调用任何控制器时都会执行一些代码,例如身份验证检查(查看用户是否已登录,检查其用户名)以及优先级,以记录页面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';
    }
}

2 个答案:

答案 0 :(得分:3)

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

那将用核心执行,所以在每一页上都可以执行!

答案 1 :(得分:2)

您可以通过扩展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');
  }
}

请参阅文档here