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