这是目前的布局:
<header>
<navigation>
<section id="<?= $this->id; ?>">
<?= $content; ?>
</section>
<footer>
然而,页面布局(此处称为main.php
)具有以下层次结构:
[header]
[依赖于db记录id字段的动态图像库] !!!
[导航]
[content]
[页脚]
导航在所有网页上都相同,所以它们应该在布局上,对吗?
动态图库包装在所有页面上都相同,所以它应该在布局上,对吗?
但是图像本身,它们应该根据数据库记录而不同。
我甚至不知道从哪里开始。
我可以请一点推动吗?
更新
我应该在 components / controller.php 或mycontroller或我们可能拥有的任何内容中创建一个方法,从模型中检索值,并将该值作为公共参数< / em>用于布局?
这对你有意义吗?
答案 0 :(得分:1)
正如您所知,您必须将non-changing
次观看次数放入主layout
。但是关于在请求期间将发生变化的视图,您必须为每个视图创建不同的视图。然后,根据您的请求,您可以renderPartial()
您的观点。
说,你的图像视图。
首先,我们在布局目录(或任何目录)中创建名为_image.php
的视图。
其次,我们从数据库中获取数据。例如,我们有如下图像数据:
$images=array('test1.jpg','test2.jpg',...);
第三,在每个请求中,您必须将数据发送到renderPartial方法:
$this->renderPartial('//layout/_image.php',array('images'=>$images));
并且在您的_image.php
中,您可以操纵您的数据,这些数据在不同的请求中总是不同的。
还有其他方法可以做到这一点:
<强>更新强>
在这种情况下,使用Yii的Decorator
为提问者工作。