2011-10-19 16 views
3

私には3つの機能を持つコントローラーがあります。ユーザーがモバイル、ウェブサイト、またはFacebookから来ているかどうかによって、各機能に3つの異なるビューとレイアウトを表示したいと考えています。私はすでにユーザーがどこから来ているかを渡しています。コントローラーあたりの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/availability.ctpからフェイスブックレイアウトの「可用性」がフェッチされます。

+0

答えに感謝します。 –

関連する問題