如何为CakePHP创建多个布局?

3
我对如何在cakephp中为每个页面设置自己的布局感到困惑。当前,有一个default.ctp文件,我已经修改它以拥有我的主要布局并包含$content_for_layout代码。所以,我输入的所有内容都反映在pages \ home.ctp中。但是我想要一个登录和注册布局,以及它们各自的页面。我该怎么做呢?我应该编辑default.ctp吗?还是为我的主页创建另一个布局?请协助。

@Juhana 谢谢,我应该早点看它。 - dwyane
2个回答

10

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

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

}

1
//app/views/layouts/my_index_layout.ctp//app/views/layouts/my_view/layout.cpt 之间的差异是否由函数名称引起的? - ozanmuyes
在CakePHP 3.3.x中,设置此变量现已弃用。如果您启用了调试模式,CakePHP将指示您改用 $this->viewBuilder()->layout('my_index_layout') - André

3
我想要一个登录和注册的布局,以及它们各自的页面。在Cake中,“布局”主要是指页眉和页脚。听起来您正在参考内容的布局。您可以在每个单独的视图文件中进行内容的布局。
我应该编辑default.ctp吗?还是为我的主页创建另一个布局?
是的,您可以修改它。如果您需要更多的布局,您可以在该文件夹中创建更多的布局,并在控制器中指定布局(否则,默认为“默认”布局)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接