如何在Controller(Codeigniter)中基于多个条件加载视图

时间:2015-06-09 05:18:17

标签: php codeigniter

我是codeigniter的新手。我正在尝试使用三(3)个条件视图创建一个简单的站点。

例如:
如果“user_agent”检测到移动设备 - >加载mobile_view
否则加载 - > web_view
如果“站点”设置被禁用[value = 0] load - > maintenance_view


我有以下代码但不起作用。它总是加载维护视图。

控制器:

 nfc-mfclassic r a mfoc_output.mfd


网站设置的模型

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');
    } 

对于网站设置条件,我已从此处扩展了我的旧代码 How to load a view based on condition in Controller (Codeigniter)

如果启用了网站,之前的代码只有2个条件 [网站价值== 1] [网站价值== null]

根据条件,如果站点“value == 1”,则在控制器中加载Web或索引视图,否则如果站点“value == null”加载维护视图


现在我正在尝试添加移动视图,但我无法弄清楚如何使用其余代码。

1 个答案:

答案 0 :(得分:2)

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();
            }
          }
         }