【问题标题】:CakePHP - Creating 2 $content_for_layout variablesCakePHP - 创建 2 个 $content_for_layout 变量
【发布时间】:2012-08-03 22:21:20
【问题描述】:

我正在为我的公司进行彻底的重新设计,但遇到了问题。我们正在使用 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'。这样我就可以将标题和导航放在元素中,并将它们仅保留在布局模板中。问题是我没有充分利用模板,因为我仍然要重复很多 html。

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

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

【问题讨论】:

    标签: php cakephp cakephp-1.2


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-12
      • 1970-01-01
      • 2021-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-17
      相关资源
      最近更新 更多