Может ли View в Kohana получить доступ к переменным своего родительского View? - PullRequest
0 голосов
/ 11 мая 2009

Это относится к Kohana 2.3.2

Я недавно начал делать свои представления более динамичными. Использование шаблона по умолчанию в качестве базы, теперь я делаю в контроллере

$this->template->innerView = new View('article');

Тогда, в середине моего template.php, у меня есть

<?php echo $innerView; ?>

Чтобы повторить «внутренности» представления статьи между моим верхним и нижним колонтитулом. Это прекрасно работает, за исключением того, что все переменные, которые я определил для $this->template, недоступны из нового представления. Я знаю, что мог бы, вероятно, сделать

$this->template->innerView->title = 'My Title';

Но если бы был способ заставить дочерние представления наследовать переменные своих родителей, это было бы замечательно.

Есть?

Ответы [ 2 ]

4 голосов
/ 11 мая 2009

Метод set_global () устанавливает глобальную переменную только для всех представлений. Это не то, что вы думаете, когда слышите «Global» в PHP, поэтому вы правильно поняли, это именно то, что вы должны использовать, когда хотите сделать переменную доступной для нескольких представлений.

0 голосов
/ 11 мая 2009

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