Peut une vue dans Kohana accéder à des variables de sa vue parent?
Question
Cela vaut pour Kohana 2.3.2
J'ai récemment commencé à faire mon point de vue plus dynamique. Utilisation de l'affichage du modèle par défaut comme base, maintenant que je fais dans le contrôleur
$this->template->innerView = new View('article');
Alors, au milieu de mon template.php
, j'ai
<?php echo $innerView; ?>
Pour faire écho aux « tripes » de la vue article entre mon en-tête et pied de page. Cela fonctionne très bien, à l'exception de tous les vars I définis sont inaccessibles à $this->template
de la nouvelle vue. Je sais que je pourrais probablement faire
$this->template->innerView->title = 'My Title';
Mais s'il y avait un moyen de faire des vues enfants héritent les variables de leurs parents, ce serait grand.
Y at-il?
La solution
La méthode set_global () ne définit que la variable soit globale dans tous les points de vue. Ce n'est pas ce que vous pensez quand vous entendez « Global » en PHP et vous avez bien compris, c'est exactement ce que vous devez utiliser lorsque vous souhaitez effectuer une variable disponible sur plusieurs vues.
Autres conseils
http://docs.kohanaphp.com/core/view#set_global
Je avais besoin parce que j'utilise le titre de la page dans le modèle normal (pour l'intérieur <title></title>
) et aussi comme de la page <h2></h2>
.
Il est aussi simple que cela
$this->template->innerView = new View('article');
$this->template->set_global('title', 'My Title');