在CakePHP 2.0中使用ajax发布到控制器

在CakePHP 2.0中使用ajax发布到控制器,php,ajax,cakephp,cakephp-2.0,Php,Ajax,Cakephp,Cakephp 2.0,当我发布到这个控制器时,我得到的响应是:致命错误:对第26行的/app/controller/AppController.php中的非对象调用成员函数find(),这可能与显式使用$this->data()有关。我在用 根据那里的建议,但由于我没有使用表单发送数据(因此没有使用$this->request->data()),我想知道$this->data()的替代品是什么,这样我就可以工作了 我的数据库表是submissions\u favorites 这是我最喜欢的型号: class Subm

当我发布到这个控制器时,我得到的响应是:
致命错误:对第26行的/app/controller/AppController.php中的非对象调用成员函数find()
,这可能与显式使用
$this->data()
有关。我在用 根据那里的建议,但由于我没有使用表单发送数据(因此没有使用
$this->request->data()
),我想知道
$this->data()
的替代品是什么,这样我就可以工作了

我的数据库表是
submissions\u favorites

这是我最喜欢的型号:

class SubmissionFavorite extends AppModel {

    var $name = 'SubmissionFavorite';

    var $belongsTo = array(
        'User' => array(
            'className' => 'User'
        )
    );

}
这是AjaxController(我要发布到):

my AppController中的第26行是:

protected function getSubmissionCount() {
    $totalSubmissions = $this->Submission->find('count');
    return $totalSubmissions;
}
这和其他事情完全无关。在AjaxController中编写新方法时,我甚至没有向AppController添加任何内容,因此我不确定它的相关性(或者为什么我在该文件中出现错误)。

尝试更改所有内容

var $name = 'SubmissionFavorite';
致:

同时更改:
var$uses='SubmissionFavorite'


收件人:
public$uses=array('SubmissionFavorite')

首先,按照蛋糕惯例,您应该将您的模型命名为SubmissionsFavorite(注意Submission和Favorite之间的s)。这是因为您的表名由两个字组成,甚至表示其他两个表之间的关系

此外,您不能执行$this->Submission->。。。在AppController上,不告诉cake什么是“提交”。查看此链接以了解如何初始化提交模型并在AppController上使用它:


问候。

您的AppController中的第26行是哪一行…?嗯,有人建议我做第一件事
public$name='SubmissionFavorite'
,但那没用。现在我得到了其他错误。这是正常的CakePHP约定吗?在文档中似乎找不到任何关于保存到没有表单的模型的内容。
var $name = 'SubmissionFavorite';
public $name = 'SubmissionFavorite';