2017-10-20 5 views
0

Je ne sais pas comment formuler cette question sur google, donc je ne pouvais pas trouver de réponses.Codeigniter Rediriger ou charger la vue avec des modèles

Dans mon dossier Views, j'ai un dossier templates avec en-tête, navbar, footer à l'intérieur.

Chaque fois que je charge une vue de mon contrôleur je dois ce faire,

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

Comment puis-je faire cela avec redirect? Je ne sais pas pourquoi, mais chaque fois que je vois des extraits de code de connexions réussies ou des échecs, ils utilisent toujours la fonction de redirection au lieu de charger la vue comme ci-dessus.

par exemple:

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

ou puis-je utiliser et cela sera encore acceptable?

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

Répondre

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

dans votre contrôleur, créez une fonction appelée connexion

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

En vous redirigez devez utiliser contrôleur/method_name

redirect('controllername'); 

ou

redirect('controllername/method'); 
+0

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

+0

Donc, rediriger peut également être utilisé pour appeler une méthode dans un contrôleur? Je pensais que c'était seulement pour les vues. Aussi, peut-il appeler n'importe quelle méthode à partir de n'importe quel contrôleur? Peut-il aussi appeler une méthode dans le même contrôleur? – John

0

Plutôt que de construire, vous pouvez utiliser remap. pour rediriger si l'utilisateur est connecté ou non

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