仅更改cakephp中的主页布局

时间:2009-12-21 09:15:21

标签: php cakephp layout

如果我的整个网站使用apps / view / layouts / default.ctp中指定的default.ctp布局,如何仅更改主页布局以使用homepage.ctp并使用默认设置保留网站的其余部分。 CTP?

3 个答案:

答案 0 :(得分:14)

/cake/libs/controller/pages_controller.php复制到/app/controller/目录中,然后执行以下任一操作:

  • display()的末尾添加一行,以便在请求'home'时切换布局:
    if ($page == 'home') $this->layout = 'homepage';
  • 创建一个home()方法(或者您喜欢的名称),在其中设置$this->layout并在/中重新路由/app/config/routes.php路由以使用此新方法。

修改
总之,您需要一些自定义方法,您可以在其中设置$this->layout = 'homepage',这就是全部。您可以随时在任何控制器中执行此操作,重用PagesController只是在Cake中执行此操作的最方便和最常用的方法。

答案 1 :(得分:1)

上述答案现已过时,但提供了正确的方法。

在现代版本的CakePHP中,他要求你制作的控制器已经存在并且是:

/app/Controller/PagesController.php

我有一个名为“logoff”的模板,并在$this->render()命令(大约第73行)之前添加了如下内容。

$this->layout = 'loggedoff';

答案 2 :(得分:0)

这很好用:

class RegistrationsController extends AppController {
     public $helpers = array('Html', 'Form', 'Time');
     public $components = array('Session');

     public function login() {
         $this->layout = 'empty';
     } 
}

只需在控制器功能中设置所需的布局即可。