【问题标题】:Cakephp multiple views per controllerCakephp 每个控制器有多个视图
【发布时间】:2011-10-19 11:52:39
【问题描述】:

我有一个具有 3 个功能的控制器。我希望根据用户来自移动设备、网站还是 facebook 在每个功能中显示 3 个不同的视图和布局。我已经传入了用户来自的地方。

我不确定如何为每个视图显示特定的视图和布局。这是我开始做的一些代码来更改布局。我有一个名为 res 的文件夹中的视图。

function availability() {

    if ($_REQUEST['from'] == 'facebook') {
        $this->layout = 'facebook';
        print_r ('face');
    }elseif ($_REQUEST['from'] == 'website'){
        $this->layout = 'website';
        print_r ('web');
    }elseif ($_REQUEST['from'] == 'mobile'){
        $this->layout = 'mobile';
        print_r ('mobile');         
    };
}

【问题讨论】:

    标签: cakephp controller views


    【解决方案1】:

    使用$this->render() 更改视图。

    $this->layout = 'facebook';
    $this->render( 'res/facebook' );
    

    您还可以将不同布局的所有视图放到它们自己的文件夹中并设置视图路径,这样您就不必在每个函数中手动选择视图:

    function beforeFilter() {
        parent::beforeFilter();
        $this->viewPath = $_REQUEST[ 'from' ];
    }
    

    现在 Facebook 布局的“可用性”视图从 facebook/availability.ctp 获取。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多