我正在为我的公司进行彻底的重新设计,但我遇到了一个问题。我们正在构建如果离开Cake Framework(1.2.0.7296 RC2)并且我正在尝试找到创建实体布局模板的最佳解决方案。我创建的设计在每个页面中都有多个包装器。下面是代码的简化版本。
<body style="background:url(somebackground.png);">
<div class="page">
<!--Page is used to constrain the content within a specific width-->
<div class="header">
<div class="nav">
</div><!--End Nav-->
</div><!--End Header-->
<div class="content">
<!--This area contains a slideshow and other info that varies from page-to-page-->
</div><!--End Content-->
</div><!--End Page-->
<div class="wrapper" style="background:url(someotherbackground.png);">
<div class="page">
<div class="content">
<!--Additional content-->
</div><!--End Content-->
</div><!--End Page-->
</div><!--End Wrapper-->
</body>
问题是在Cake布局中只有一个$ content_for_layout,这适用于大多数网站。但是,由于我的结构是如何构建的,因此很难充分利用布局模板。我想到的唯一解决方案如下。
理想情况下,我想要2 $ content_for_layout。一个用于第一页下面的内容,另一个用于第二页上的内容。这样我就可以充分利用布局模板。然后在我的页面上,我将有一个部分,我可以放置透视内容。在我对这个问题的研究中,我找到了一些解决方案。
我不确定这些是最好的解决方案还是会给我我想要的东西。我是一名设计师和前端开发人员,因此我对Php的了解有限。我对蛋糕的了解更加有限。我正在寻找最简单的解决方案。
答案 0 :(得分:2)
如果可行(但我假设没有),请使用最新版本的Cake(2.2.1稳定版)。从2.1开始,Cake支持View Blocks,解决了你遇到的确切问题。
如果不可能,您可以从控制器设置一些变量(可能是渲染的元素,或者更好的是,您必须转发到从布局渲染的元素的变量),并在任何地方回显在布局上。您从Controller传递到Controller::set
视图的所有变量也可用于布局。