如何在Controller(Codeigniter)中基于多个条件加载视图 [英] How to load a View based on multiple conditions in Controller (Codeigniter)
问题描述
我是Codeigniter的新手。我正在尝试制作一个具有三(3)个条件视图的简单网站。
I'm new to codeigniter. I'm trying to make a simple site, with three (3) conditional views.
例如:
如果 user_agent检测到移动设备->加载mobile_view
否则加载-> web_view
,如果禁用了站点设置[值= 0]加载-> maintenance_view
For example:
If "user_agent" detects mobile device -> load mobile_view
else load -> web_view
and if "site" settings is disabled [value = 0] load -> maintenance_view
以下代码,但不起作用。始终会加载维护视图。
I have the following code but doesn't work. It always load the maintenance view.
控制器:
function index() {
$this->load->library('user_agent');
if($this->agent->is_mobile())
{
$this->load_mobile();
} else {
$this->load_web();
}
}
public function load_web() {
$site = $this->Datamodel->getsetting();
if(isset($site) && $site==1) { //check if site settings is enabled [(if site "value == 1" load -> web_view) ELSE (site "value == null" load -> maintenace_view)]
$this->load->view('web_view');
} else {
$this->load->view('maintenance_view');
}
}
public function load_mobile() {
$this->load->view('mobile_view');
}
模型网站设置:
function getsetting() {
$this->db->select("site");
$this->db->from('configuration');
$query = $this->db->get();
$ret = $query->row();
return $ret->site;
}
对于网站设置条件,我从这里扩展了我的旧代码 如何加载基于控制器(Codeigniter)中的条件
如果启用了站点,则先前的代码只有2个条件 [站点值== 1 ] 或不 [站点值==空]
The previous code only have 2 conditions if site is enabled [site value == 1] or not [site value == null]
根据条件,如果站点值==,则将Web或索引视图加载到控制器中1,否则,如果网站值== null加载维护视图
Depending on conditions, web or index view is loaded in controller if site "value == 1" otherwise if site "value == null" load the maintenace view
现在我正在尝试添加移动视图,但我无法找到它
推荐答案
function index() {
if(site_value == 0){
$this->load->view('maintenance_view');
}else{
$this->load->library('user_agent');
if($this->agent->is_mobile())
{
$this->load_mobile();
} else {
$this->load_web();
}
}
}
这篇关于如何在Controller(Codeigniter)中基于多个条件加载视图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!