2017-10-20 3 views
0

Googleでこの質問をどのようにフレーズするかわからないので、回答が見つかりませんでした。Codeigniterテンプレートを使用したリダイレクトまたはロードビュー

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

答えて

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

を使用する必要がリダイレクト

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

では、関数と呼ばれるログインを作成し、あなたのコントローラにコントローラ/ METHOD_NAMEに

redirect('controllername'); 

または

redirect('controllername/method'); 
+0

https://www.codeigniter.com/user_guide/general/styleguide.html#file-naming – user4419336

+0

したがって、リダイレクトを使用してコントローラ内のメソッドを呼び出すこともできます。 私はそれがビューのためだと思った。 また、任意のコントローラから任意のメソッドを呼び出すことはできますか?同じコントローラ内でメソッドを呼び出すことはできますか? – John

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'); 
} 
関連する問題