2011-03-10 70 views
1

我想呈現自己的視圖,我想避免呈現<head>和default.ctp文件中定義的其他部分。只呈現指定視圖 - CakePHP

我有我想要的元素來呈現信息:

<?php 

echo $post['Post']['id']; 

?> 

我怎樣才能做到這一點?這是爲了ajax響應。

謝謝!

回答

1

您可以創建一個新的佈局(/app/views/layouts/ajax.ctp,例如),其中包含:

<?php echo $content_for_layout ?> 
在你的控制器

然後,在您正在使用的動作,定義佈局:

function myaction() { 
    $this->layout = 'ajax'; 
} 

參考:http://book.cakephp.org/view/962/Page-related-Attribute-layout

1

只需創建一個名爲ajax.ctp佈局只包含

<?php 
echo $content_for_layout; 

然後在控制器把

$this->layout = 'ajax'; 

如果你想要爲所有AJAX請求編程方式做到這一點,只是RequestHandler組件添加到您的控制器

var $components = array('RequestHandler'); //and possibly others 

並創建一個beforeRender方法類似

function beforeRender() { 
    if ($this->RequestHandler->isAjax()) { 
     $this->layout = 'ajax'; 
     Configure::write('debug', 0); 
    } 
}