加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2020-12-13 13:13:34 所属栏目:PHP教程 来源:网络整理
导读:我的codeigniter应用程序中有一个控制器“user”.这个控制器有一个名为logged_user_only()的函数: public function logged_user_only() { $is_logged = $this - is_logged(); if( $is_logged === FALSE) { redirect('user/login_form'); } } 由于此函数调用
我的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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读