首页 > 解决方案 > 如何在 CodeIgniter 中分离具有相同名称的控制器功能

问题描述

我正在使用 CodeIgniter HMVC。我有一个针对不同客户的教育网络应用程序。

我需要为每个客户定制一个控制器。我们需要为不同的客户端提供不同的视图和功能,但唯一的条件是,调用相同的 url。

例如,我正在使用模块,在我的控制器名称中是 Test.php。在该控制器中有一个函数名称view()

    function view(){
       $this->load->view('view', $this->data);  
    } //The thing is that,each client need different views (view.php)

我希望所有客户端都使用相同的 URL(http://test.com/test/view)。

我有一个想法,设置一个默认控制器(或自定义控制器)和实际控制器。首先点击链接,检查默认控制器中是否存在该功能,然后执行相同的操作,否则将转到实际控制器功能。

这可能吗?

标签: phpcodeigniter-3hmvc

解决方案


在你的情况下,我可以建议使用$this->session->userdata('user_type').

像这样的东西......

function view(){
    if($this->session->userdata('user_type') == 'Client1'){
        $this->load->view('view', $this->data);  //specify load view for client1
      }
    elseif($this->session->userdata('user_type') == 'Client2'){
        $this->load->view('view', $this->data);  //specify load view for client2
     }
} 

希望它会帮助你。


推荐阅读