2013-01-17 51 views
1

在我的項目中,我在Lightbox中顯示我的視圖,我不想加載頂部導航。 我正在使用:CakePHP呈現來自內部/外部鏈接的不同佈局文件

$ this-> render('ajax');

這樣,只有內容被加載,它看起來不錯,裏面的燈箱。

問題是,當我分享視圖鏈接。

點擊只有視圖鏈接顯示視圖頁面而不頂部導航(等)

任何想法,我怎麼可能只對視圖方法改變渲染價值?

回答

1

通常,這是請求處理程序的用途玩。

嘗試這樣:

if ($this->request->is('ajax')) { 
    $this->layout = 'ajax'; 
    $this->render('ajax'); 

} else { 
    $this->layout = 'regular_layout'; 
    $this->render('not_ajax'); 
} 

當直接訪問app/controller/action, 「非Ajax」 的視圖/佈局將呈現代替。

More in the docs

+0

很好的解決方案,非常簡單。謝謝! – 3und80

0

你可以使用這個 - $>引薦()來查看用戶是否從您的網站或其他網站來了,如果他們從其他網站(外部)來到然後可以呈現不同的看法,或只是將用戶重定向到另一個頁面..你可以用會話做同樣的事情而不是裁判地址,檢查用戶是否有會話(你將不得不先前設置)...

+0

謝謝,取決於項目,這可能也是一個不錯的方法。 – 3und80

+0

不用擔心。經過反思,我會使用羅斯的解決方案:D – Happy