【发布时间】:2020-10-14 05:16:46
【问题描述】:
从 Codeigniter 4 for view layouts 的官方文档中,您可以在模板中使用 renderSection 函数。
但主要问题是我无法弄清楚这是如何工作的。请记住,我不想解决这个问题,我真的需要知道renderSection 是如何工作的以及我缺少什么。
更准确地说:
在我的Controller 我有这个代码:
// TestController.php
...
// My method
...
$view = \Config\Services::renderer();
$view->setVar('output', $output);
return $view->render('my-main-view');
...
我的视图看起来像这样:
// my-main-view.php
...
<div class="main-container">
<main>
<?php echo $output; ?>
</main>
<?php echo $this->renderSection('sidebar'); ?>
</div>
...
所以我的问题是:
我能否以某种方式从我的控制器中为“侧边栏”添加我想要的数据?我想专门使用renderSection 来了解它的工作原理。
请不要为此添加解决方法。我知道我可以拥有:
$view->setVar('sidebar', view('my-view'));
然后在我的模板中:
echo $sidebar;
我问这个的主要原因是我们通常会找到解决方法,但我们忽略了如何实际使用 renderSection
有没有:
$view->setRenderSection('sidebar', 'my-view', ['data' => $data]);
我可以使用吗?我在这里遗漏了什么吗?
【问题讨论】:
-
我无法在自动取款机上起草答案,因为我正在打电话。但几周前我制作了一个视频,解释了它是如何工作的。 youtu.be/qfYKzf4q5Ig?t=790我开始在视频的这一部分讨论视图布局。
标签: php codeigniter codeigniter-4