Как загрузить представление на основе состояния в контроллере (Codeigniter)

Я новичок в кодеригере. Я пытаюсь создать простой сайт, который получит свои «настройки» в базе данных, если сайт включен (1) или нет (0).

Я пытаюсь определить параметры сайта, если включен (1) или нет (0), и отобразить индексное представление (если значение сайта == 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] из столбца сайта, для определения того, какой вид должен отображаться.

Любая помощь принимается. Заранее спасибо.

Solutions Collecting From Web of "Как загрузить представление на основе состояния в контроллере (Codeigniter)"

МОДЕЛЬ Здесь вам нужно получить одну строку, используя $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» на имя модели метода «getetting».

Если вы хотите отключить весь доступ к методу в режиме обслуживания, сделайте что-то вроде ниже в конструкторе вашего контроллера,

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