如何为cakephp提供多个布局?

如何为cakephp提供多个布局?,cakephp,layout,cakephp-1.3,Cakephp,Layout,Cakephp 1.3,对于如何在cakephp中为每个页面设置自己的布局,我感到非常困惑。目前,有一个default.ctp,我已将其修改为具有我的主布局,并包含$content\u for\u布局代码。因此,我在pages\home.ctp中输入的内容都会得到反映。但我想有一个登录和注册布局,以及他们的个人网页。我如何才能做到这一点?我应该编辑default.ctp吗?或者为我的主页创建另一个布局 请协助。您可以在控制器方法中指定不同的布局,例如 function index() { $this->la

对于如何在cakephp中为每个页面设置自己的布局,我感到非常困惑。目前,有一个default.ctp,我已将其修改为具有我的主布局,并包含$content\u for\u布局代码。因此,我在pages\home.ctp中输入的内容都会得到反映。但我想有一个登录和注册布局,以及他们的个人网页。我如何才能做到这一点?我应该编辑default.ctp吗?或者为我的主页创建另一个布局


请协助。

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

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

}
但我想有一个登录和注册布局,以及他们的个人网页

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

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


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

@Juhana谢谢我本该读的。函数名引起的
//app/views/layouts/my_index\u layout.ctp
//app/views/layouts/my_view/layout.cpt
之间的区别是什么?在CakePHP 3.3.x上设置此变量现在已被弃用。如果启用了调试,CakePHP将指示您使用
$this->viewBuilder()->layout('my_index_layout')