Cakephp 2.x和Jquery:未定义变量:posts

Cakephp 2.x和Jquery:未定义变量:posts,jquery,ajax,cakephp,cakephp-2.1,Jquery,Ajax,Cakephp,Cakephp 2.1,我试图使用jquery从另一个视图调用一个视图,但我得到了一个未定义的变量和许多其他错误 让我解释一下 在我的AppController中,我添加了Js来使用jquery class AppController extends Controller { var $helpers = array('Html','Form','Js'); } 在我的布局default.ctp文件中,我添加了两行 echo $this->Html->script('jquery'); 和ec

我试图使用jquery从另一个视图调用一个视图,但我得到了一个未定义的变量和许多其他错误

让我解释一下

在我的AppController中,我添加了Js来使用jquery

class AppController extends Controller {
    var $helpers = array('Html','Form','Js');  }
在我的布局default.ctp文件中,我添加了两行

echo $this->Html->script('jquery');
echo$this->Js->writeBuffer(数组('cache'=>TRUE))作为头块的最后一行

我的PostsController文件的添加操作,我添加组件

public $components = array('RequestHandler');
在我的添加操作中,我使用

$this->render('index','ajax')如果调用是ajax调用。

如果“渲染”命令引用div节,则该命令有效

但是当我想要呈现一个现有的视图时,在本例中是索引,这是 PostController指向view.ctp,我得到了未定义变量posts的错误和其他错误


您能告诉我缺少什么吗?

首先,如果您不打算使用JsHelper,您不应该包含它。使用jQuery不需要显式地使用
JsHelper
。很明显,你不知道所有这些东西是如何联系在一起的


您得到的是“posts未定义错误”,因为(我猜)当您尝试渲染
索引
视图时,您没有设置
posts
变量。我相当肯定没有什么像:
$this->set('posts',$someVariable)。显示此错误是因为
index.ctp
希望收到一个
$posts
变量,其中包含所有posts。我怀疑这个视图也是通过
蛋糕烘焙
生成的,对吗?如果你想渲染它,你需要获得帖子并设置变量
posts

,你能解释得更好吗?您试图从另一个视图调用一个视图?为什么?那是可怕的做法。错误到底是什么?