【问题标题】:Cakephp using multiple layouts for same pageCakephp对同一页面使用多个布局
【发布时间】:2014-01-20 21:06:58
【问题描述】:

我正在做一个 cakephp 项目。我正在使用 View/Layouts/default.ctp 文件来存储我的页眉和页脚,这将适用于我在应用程序中的所有页面。 但是,还有另一种布局,我只想使用某些页面以及页眉和页脚。

如何让页面同时使用这两种布局?

【问题讨论】:

  • 为什么要将两种布局放在同一页面中?

标签: cakephp


【解决方案1】:

每次页面加载只能使用一种布局。但是,您可以将页眉和页脚代码放入 elements,然后在您的两种布局中都可以使用。

【讨论】:

    【解决方案2】:

    您可以扩展视图。将页眉/页脚放入 View/Common/default.ctp 并扩展它。

    $this->extend("/Common/default");
    

    您还可以使用元素或块,具体取决于您的布局设置方式和您的需要。 Read more

    【讨论】:

      【解决方案3】:

      您可以根据您的逻辑从控制器或视图更改布局。

      // from a controller
      public function admin_view() {
          // stuff
          $this->layout = 'admin';
      }
      
      // from a view file
      $this->layout = 'loggedin';
      

      供参考:http://book.cakephp.org/2.0/en/views.html#layouts

      【讨论】:

        【解决方案4】:
        You can use multiple layout..........
        
        class IndexController extends AppController {
        
            public function test1() {
                $this->layout = 'layout1';
            }
        
            public function test2() {
                $this->layout = 'layout2';
            }
        
            public function testn() {
                $this->layout = 'layoutn';
            }
        
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-03-26
          • 1970-01-01
          • 2016-12-01
          • 2012-11-18
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多