我的codeigniter应用程序中有一个控制器“user”.这个控制器有一个名为logged_user_only()的函数:
public function logged_user_only() { $is_logged = $this -> is_logged(); if( $is_logged === FALSE) { redirect('user/login_form'); } }
由于此函数调用另一个名为is_logged()的函数,该函数仅检查会话是否设置,否则返回true,否则返回false.
现在如果我把这个函数放在同一控制器内的任何函数的开头,它将检查用户是否没有记录,它将重定向到login_form,否则继续.这工作正常
例如,
public function show_home() { $this -> logged_user_only(); $this->load->view('show_home_view'); }
现在我想在另一个控制器的函数中调用这个logged_user_only()函数来检查用户是否登录?
PS.如果这不能完成,或者不推荐,我应该在哪里放置这个功能访问多个控制器?谢谢.
为什么不扩展控制器,以便登录方法在MY控制器(在应用程序的核心文件夹中)之外,所有其他控制器都会扩展它.例如你可以有:
原文链接:https://www.f2er.com/php/131218.htmlclass MY_Controller extends CI_Controller { public function is_logged() { //Your code here } }
您的主控制器可以如下扩展:
class Home_Controller extends MY_Controller { public function show_home() { if (!$this->is_logged()) { return false; } } }
欲了解更多信息,请访问:Creating Core System Classes