【问题标题】:How to have multiple layouts for cakephp?如何为 cakephp 设置多个布局?
【发布时间】:2011-10-17 06:14:09
【问题描述】:

我很困惑如何在 cakephp 中为每个页面设置自己的布局。目前,我已经修改了一个 default.ctp 以具有我的主要布局并包含 $content_for_layout 代码。所以我在 pages\home.ctp 中输入的任何内容都会得到反映。但我想要一个登录和注册布局以及他们的个人页面。我怎样才能实现这一目标?我什至应该编辑 default.ctp 吗?或者为我的主页创建另一个布局?

请帮忙。

【问题讨论】:

  • @Juhana 谢谢我应该读过它。

标签: cakephp layout cakephp-1.3


【解决方案1】:

但我想要一个登录和注册布局以及它们的各个页面。

“布局”,正如 Cake 所理解的,主要是页眉和页脚。听起来您指的是内容的布局。您可以在每个单独的视图文件中进行内容布局。

我什至应该编辑 default.ctp 吗?或者为我的主页创建另一个布局?

是的,您可以修改它。如果您想要更多布局,您可以在该文件夹中创建更多布局并在控制器中指定布局(否则,它默认为“默认”布局)。

【讨论】:

    【解决方案2】:

    您可以在控制器方法中指定不同的布局,例如

    function index() {
    
      $this->layout='my_index_layout'; //app/views/layouts/my_index_layout.ctp
    
    }
    
    function view($id) {
    
        $this->layout = 'my_view_layout'; //app/views/layouts/my_view/layout.cpt
    
    }
    

    【讨论】:

    • //app/views/layouts/my_index_layout.ctp//app/views/layouts/my_view/layout.cpt的区别是不是函数名造成的?
    • 现在不推荐在 CakePHP 3.3.x 上设置此变量。如果您启用了调试,CakePHP 将指示您改用$this->viewBuilder()->layout('my_index_layout')
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多