Может ли Представление в Kohana получить доступ к переменным своего родительского представления?

StackOverflow https://stackoverflow.com/questions/846749

  •  21-08-2019
  •  | 
  •  

Вопрос

Это относится к 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');
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top