Может ли Представление в Kohana получить доступ к переменным своего родительского представления?
Вопрос
Это относится к Kohana 2.3.2
Недавно я начал делать свои Взгляды более динамичными.Используя представление шаблона по умолчанию в качестве основы, теперь я делаю в контроллере
$this->template->innerView = new View('article');
Затем, в середине моего template.php
, У меня есть
<?php echo $innerView; ?>
Чтобы отразить "внутренности" представления статьи между моим верхним и нижним колонтитулами.Это работает нормально, за исключением всех переменных, которые я определил для$this->template
недоступны из нового представления.Я знаю, что, вероятно, мог бы сделать
$this->template->innerView->title = 'My Title';
Но если бы существовал способ заставить дочерние представления наследовать переменные своего родителя, это было бы здорово.
Есть ли?
Решение
Метод set_global() только устанавливает глобальную переменную во всех представлениях.Это не то, что вы думаете, когда слышите "Глобальный" в PHP, так что вы все поняли правильно, это именно то, что вам следует использовать, когда вы хотите сделать переменную доступной в нескольких представлениях.
Другие советы
http://docs.kohanaphp.com/core/view#set_global
Мне это было нужно, потому что я использую заголовок страницы в обычном шаблоне (для внутри <title></title>
) , а также в качестве <h2></h2>
страницы.
Это так просто, как это
$this->template->innerView = new View('article');
$this->template->set_global('title', 'My Title');