如何在控制器(Codeigniter)中加载基于条件的视图


How to load a view based on condition in Controller (Codeigniter)

我是新手。我想做一个简单的网站,这将得到它的"设置"在数据库上,如果网站是启用(1)或不(0)。

我正在尝试确定网站设置是否启用(1)或不(0)并显示索引视图(如果site value == 1)

和维护视图(如果站点值== 0或null)


我已经编写了代码,我可以在视图中响应"站点"值。

模型
function getsetting() {
$this->db->select("site");
$this->db->from('configuration');
$query = $this->db->get();
$ret = $query->row();
return $ret->site;
}
控制器

    //if site value is == 1 load the normal view
    $this->load->view('index', $data);
    //else load the maintenance view
    $this->load->view('maintenance', $data)

我有一个数据库"mysite"与一个表"配置"和一列"站点"的值[null或1]是从站点列,用于确定什么视图应该显示。




我们接受任何帮助。

MODEL这里需要使用$query->row();获取单行,并将其传递给控制器

function getsetting() {
$this->db->select("site");
$this->db->from('configuration');
$query = $this->db->get();
$ret = $query->row();
return $ret->site;
}

正如你在问题中所描述的

the values [null or 1]
控制器

function your_controler() {
        $this->load->model('model_file');
        $site = $this->model_file->getsetting();
        if(isset($site) && $site==1){// your condition here
        $this->load->view('index', $data);
        }else{
            $this->load->view('maintenance', $data)
        }
    }

为你的控制器设置如下:

$setting = $this->modelName->getsetting();
if($setting['maintenance'] == 1){
    $this->load->view('maintenance', $data);
} else {
     $this->load->view('index' $data);
}

请确保将'modelName'替换为'getsetting'方法的模型名

如果您想在维护模式下禁用所有方法访问,请在控制器的构造函数中执行如下操作

public function __construct()
{
    parent::__construct();
    $site = $this->Datamodel->getsetting();
    if(isset($site->site) && $site->site==1)
    {
        $this->load->view('index');
        die;
    }
}