2011-10-19 16 views
3

我有一個控制器有3個功能。我希望在每個功能中顯示3種不同的視圖和佈局,具體取決於用戶是來自移動設備,網站還是Facebook。我已經進入了用戶來自的地方。Cakephp每個控制器的多個視圖

我不確定我將如何顯示每個視圖和佈局。這裏是我開始做的一些改變佈局的代碼。我有一個名爲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');   
    }; 
} 

回答

4

使用$this->render()更改視圖。

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

你也可以把不同的佈局,所有的意見,自己的文件夾,並設置viewpath,這樣你就不必在每個功能手動選擇的看法:

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

現在針對Facebook佈局的操作「可用性」視圖取自facebook/availability.ctp

+0

感謝您的回答。 –

相關問題