[英]CakePHP dynamic information for a layout
我正在CakePHP中编写博客,以使自己开始使用该框架。 问题是,我已经有了网站的布局,在这里我想显示最新的帖子(只要不是索引页面)和所有情况下的标签云。 关键是,我不能仅仅让每个控制器将一个变量传递到我的布局以使其能够呈现它,所以我需要一种更好的方法来查询我的帖子的Posts模型和标签云的Tag模型,这将是最好的方法吗? (以免将过多的逻辑与视图混淆)。
我视图代码的相关部分如下:
<?php
if ($this->params['controller'] != 'posts' || $this->params['action'] != 'index') {
?>
<section class="box">
<header>
<h3>Latest posts</h3>
</header>
</section>
<?php
// display an unordered list with all the latest posts
}
?>
<section class="box">
<header>
<h3>Tag cloud</h3>
</header>
<!-- display another unordered list with the tags-->
</section>
顺便说一下,我正在使用CakePHP 2.0.3
您可以将元素与RequestAction一起使用:
//in your element you can do like: $latestPosts = $this->requestAction('controllername/functionname');
查看文档以获取更多信息
您可以使用不同的布局。
主页布局 -不显示最新帖子
/app/View/Layout/index.ctp
默认布局 -不显示最新帖子和标签云
/app/View/Layout/default.ctp
默认情况下,Cake将使用default.ctp布局,但是您可以在控制器中覆盖该行为:
public function index() {
// do index stuff
$this->layout = "index";
}
我还建议您将最新的帖子和标签云捆绑到元素中,以使其更容易在布局中包括它们。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.