php - CakePHP - 创建 2 个 $content_for_layout 变量

标签 php cakephp cakephp-1.2

我正在为我的公司进行全面的重新设计,但我遇到了一个问题。如果脱离 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='page,然后在其下方添加另一个 div class='page'。这样我就可以将 header 和 nav 放在元素中,并只将它们保留在布局模板中。问题是我没有充分利用模板,因为我仍然要重复很多 html。

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

我不确定这些是否是最佳解决方案,或者是否能满足我的需求。我是一名设计师和前端开发人员,所以我对 Php 的了解有限。我对Cake的了解更是有限。我正在寻找最简单的解决方案。

最佳答案

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

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

关于php - CakePHP - 创建 2 个 $content_for_layout 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11804071/

相关文章:

mysql - CakePHP:查找 ('count' ) 和 DISTINCT 字段与查找 ('all' ) 和 GROUP BY 字段

mysql - CakePHP 1.2 导出为 PDF 格式

cakephp - if(某事) vs if(某事===true)

php - 删除在 Laravel 中不起作用的产品 url

PHP file_get_contents 忽略超时?

unit-testing - CakePHP 2.1:使用 Session::read() 制作模拟 Controller

database - CakePHP 的良好数据库迁移?

Php 脚本在本地主机上完全工作,只有部分在服务器上工作

php - 用php动态添加内容到div

php - cakephp 编辑字段值