只渲染指定的视图 - CakePHP

时间:2011-03-10 21:21:48

标签: php ajax model-view-controller cakephp

我想自己渲染视图,我想避免渲染default.ctp文件中定义的<head>和其他部分。

我有一个要在元素中呈现的信息:

<?php

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

?>

我怎样才能做到这一点?这是一个ajax响应。

谢谢!

2 个答案:

答案 0 :(得分:1)

只需创建一个名为ajax.ctp的布局,其中只包含

<?php
echo $content_for_layout;
然后在控制器中输入

$this->layout = 'ajax';

如果要以编程方式对所有AJAX请求执行此操作,只需将RequestHandler组件添加到控制器

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

并创建一个{/ 1}}方法,如

beforeRender

答案 1 :(得分: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