php – 在CodeIgniter中的另一个Controller中调用Controller函数

前端之家收集整理的这篇文章主要介绍了php – 在CodeIgniter中的另一个Controller中调用Controller函数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的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控制器(在应用程序的核心文件夹中)之外,所有其他控制器都会扩展它.例如你可以有:
class 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

原文链接:https://www.f2er.com/php/131218.html

猜你在找的PHP相关文章