繁体   English   中英

CakePHP - 创建2个$ content_for_layout变量

[英]CakePHP - Creating 2 $content_for_layout variables

我正在为我的公司进行彻底的重新设计,我遇到了一个问题。 我们正在构建如果离开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,这适用于大多数网站。 但是,由于我的结构是如何构建的,因此很难充分利用布局模板。 我想到的唯一解决方案如下。

  • 关闭标题后面的顶部div class ='页面,然后在其下面添加另一个div class ='page'。 这样我就可以将标题和导航放在元素中,并将它们仅保留在布局模板中。 问题是我没有充分利用模板,因为我仍然会重复很多html。

理想情况下,我想要2 $ content_for_layout。 一个用于第一页下面的​​内容,另一个用于第二页上的内容。 这样我就可以充分利用布局模板。 然后在我的页面上,我将有一个部分,我可以放置透视内容。 在我对这个问题的研究中,我找到了一些解决方案

我不确定这些是最好的解决方案还是会给我我想要的东西。 我是一名设计师和前端开发人员,因此我对Php的了解有限。 我对蛋糕的了解更加有限。 我正在寻找最简单的解决方案。

如果可能(但我假设没有),请使用最新版本的Cake(2.2.1稳定版)。 从2.1开始,Cake支持View Blocks ,它可以解决您遇到的确切问题。

如果不可能,您可以从Controller中设置一些变量(可能是渲染的元素,或者更好的是,您必须将变量转发到从布局渲染的元素),并在布局中的任何位置回显。 您从Controller传递到View with Controller::set所有变量也可用于布局。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM