php - 如何在 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)。
我有一个想法,设置一个默认控制器(或自定义控制器)和实际控制器。首先点击链接,检查默认控制器中是否存在该功能,然后执行相同的操作,否则将转到实际控制器功能。
这可能吗?
解决方案
在你的情况下,我可以建议使用$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
}
}
希望它会帮助你。