如何在布局页面上设置动态图库?

时间:2014-02-14 09:19:39

标签: php templates yii

这是目前的布局:

<header>
 <navigation>
 <section id="<?= $this->id; ?>">
     <?= $content; ?>
  </section>
<footer>

然而,页面布局(此处称为main.php)具有以下层次结构:

  

[header]

     

[依赖于db记录id字段的动态图像库] !!!

     

[导航]

     

[content]

     

[页脚]

导航在所有网页上都相同,所以它们应该在布局上,对吗?

动态图库包装在所有页面上都相同,所以它应该在布局上,对吗?

但是图像本身,它们应该根据数据库记录而不同。

我甚至不知道从哪里开始。

我可以请一点推动吗?

更新

我应该在 components / controller.php 或mycontroller或我们可能拥有的任何内容中创建一个方法,从模型中检索值,并将该值作为公共参数< / em>用于布局

这对你有意义吗?

1 个答案:

答案 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 功能非常酷。你可以google it
  • 使用Yii的 CLIPS 功能

<强>更新

在这种情况下,使用Yii的Decorator为提问者工作。