CodeIgniter/PHP - Appel d'une vue de l'intérieur d'une vue
De coeur pour ma webapp je suis en train d'essayer d'organiser un peu mieux. Comme ça pour le moment, chaque fois que je veux charger une page, j'ai à faire à partir de mon contrôleur comme suit:
$this->load->view('subviews/template/headerview');
$this->load->view('subviews/template/menuview');
$this->load->view('The-View-I-Want-To-Load');
$this->load->view('subviews/template/sidebar');
$this->load->view('subviews/template/footerview');
Comme vous pouvez le dire, il n'est pas vraiment très efficace.
Donc, j'ai pensé créer un "maître" de la vue - Il s'appelle template.php. C'est le contenu du template de vue:
<?php
$view = $data['view'];
$this->load->view('subviews/template/headerview');
$this->load->view('subviews/template/menuview');
$this->load->view($view);
$this->load->view('subviews/template/sidebar');
$this->load->view('subviews/template/footerview');
?>
Et puis j'ai pensé que je serais capable de l'appeler à partir d'un contrôleur comme ceci:
$data['view'] = 'homecontent';
$this->load->view('template',$data);
Malheureusement, je ne peut tout simplement pas faire ce travail. Quelqu'un at-il des façons de contourner cette ou de bugs, je peux mettre en place? J'ai essayé de mettre des "s"et "s autour de $en vue template.php mais cela ne fait aucune différence. L'habitude d'erreur est "Undefined variable: les données" ou "Impossible de charger la vue: $view.php" etc.
Merci les gens!
Jack
OriginalL'auteur Jack | 2010-04-11
Vous devez vous connecter pour publier un commentaire.
Je crois où vous avez:
Vous avez juste besoin de se débarrasser de la ligne:
C'est parce que lorsque le tableau est transmis de la commande, la variable sur l'affichage peuvent être utilisés simplement par $la vue plutôt que $data['view'].
Merci beaucoup, cela fonctionne parfaitement! 🙂
Heureux de l'entendre
OriginalL'auteur dd0x
Tout à fait quelques suggestions ici http://codeigniter.com/forums/viewthread/88335/
J'ai choisi cette méthode:
Contrôleur de classe:
Vue:
Avoir à charger l'affichage dans la vue et passer à travers toutes les variables qui peut être utilisé par votre enfant point de vue est loin d'être idéale. Être capable d'utiliser quelque chose comme L'Action des Filtres dans Laravel serait probablement mieux.
OriginalL'auteur Stan Bondi