У меня есть приложение в CakePHP 3.5.13, которое имеет левое меню навигации.
В моем Template/Layout/default.ctp
у меня есть это:
<body>
<?= $this->element('left_sidebar', ['lh_menu' => $lh_menu, 'cache' => true]);?>
<?= $this->fetch('content') ?>
</body>
Это делает Template/Element/left_sidebar.ctp
вкл.каждая страницаЭто также позволяет мне передавать некоторые данные ($lh_menu
) из моего AppController:
// src/Controller/AppController.php
public function beforeFilter(Event $event)
{
// $lh_menu is some data from a DB used to populate a navigation menu
$this->set('lh_menu', $lh_menu);
}
Я недавно добавил новый контроллер (называемый SubstanceViewController.php
) и хотел бы использовать другое левое меню(Template/Element/substance_sidebar.ctp
) для всех функций в этом контроллере.Я читал об использовании View Blocks , но примеры не показывают, как использовать их в отношении функций контроллера - неясно, где будет размещен код в документации.
Пожалуйстаможет кто-нибудь просветить меня о том, как это делается?У меня также будет требование позже передать данные в substance_sidebar.ctp
через SubstanceViewController.php
, и я не уверен, отличается ли это от передачи их через AppController?