Codeigniter使用模板重定向或加载视图

时间:2017-10-20 04:03:58

标签: codeigniter url-redirection

我不知道如何在谷歌上发表这个问题所以我找不到任何答案。

在我的Views文件夹中,我有模板文件夹,里面有标题,导航栏,页脚。

每当我从控制器加载视图时,我都必须这样做,

$this->load->view('template/header');
$this->load->view('template/navbar');
$this->load->view('pages/pagename');
$this->load->view('template/footer');

如何使用重定向执行此操作?我不知道为什么,但每当我看到成功登录或失败的代码片段时,他们总是使用重定向功能而不是像上面那样加载视图。

例如:

function __construct() {
    parent::__construct();
    if($this->ion_auth->logged_in()==FALSE)
    {
        redirect('pages/login');
    }
}

或者我可以使用它并且这仍然可以接受吗?

function __construct() {
    parent::__construct();
    if($this->ion_auth->logged_in()==FALSE)
    {
      $this->load->view('template/header');
      $this->load->view('template/navbar');
      $this->load->view('pages/login');
      $this->load->view('template/footer');
    }
}

3 个答案:

答案 0 :(得分:1)

function __construct() {
    parent::__construct();
    if($this->ion_auth->logged_in()==FALSE)
    {
        redirect('controller/login');
    }
}
在控制器中

创建一个名为login

的函数
function login() {
  $this->load->view('template/header');
  $this->load->view('template/navbar');
  $this->load->view('pages/login');
  $this->load->view('template/footer');
}

答案 1 :(得分:0)

在重定向中,您需要使用 controller / method_name

redirect('controllername'); 

redirect('controllername/method');

答案 2 :(得分:0)

而不是构造你可以使用重映射。如果用户是否已登录则重定向

REMAP

public function _remap($method, $params = array()){
   if(method_exists($this, $method)){
      if($this->ion_auth->logged_in()==FALSE){
         return call_user_func_array(array($this, $method), $params); //home page
      }
      return call_user_func_array(array($this, 'login'), $params); //if not logged in
  }
  show_404();
}

LOGIN

public function login() {
  $this->load->view('template/header');
  $this->load->view('template/navbar');
  $this->load->view('pages/login');
  $this->load->view('template/footer');
}