【问题标题】:cakephp backbone save not workingcakephp骨干保存不起作用
【发布时间】:2014-02-25 23:13:27
【问题描述】:

我有一个用 cakephp 开发的网站,我在骨干网中使用了一个简单的应用程序。 现在我想从主干中保存数据但不起作用,总是在回调错误中返回,并且它没有采用正确的值来保存在表中。

这是我的简单应用:

TaskModel = Backbone.Model.extend({
        url: function(){
            return "/step_task/ajax_save";
        }
    });

    TaskCollection = Backbone.Collection.extend({
        model: TaskModel,
        initData: function(data){
            return data;
        }
    });

    var TaskView = Backbone.View.extend({ 
        template: _.template($("#task-template").html()),
        initialize: function(){ 
            this.task = new TaskCollection(<?php echo json_encode($step['StepTask']); ?>);
            this.render();
        }, 
        render: function(){
            taskModel = new TaskModel({
                'id': '1',
                'user_id': '1'
            });
//--------------------------- here I would like to save inside my table ----------------
                taskModel.save(null, {
                    success: function(model, response) {
                        console.log('success');
                        console.log(model);
                        console.log(response);
                    },
                    error: function(model, response) {
                        console.log('error');
                        console.log(model);
                        console.log(response);
                    },
                    wait: true // Add this
                });
                $(this.el).html(this.template({tasks: this.task.models}));
            }
        });

这是我在 StepTaskController.php 中的功能

public function ajax_save(){
    $this->autoRender = false;
    $this->StepTask->save($this->request->data);
}

我该如何解决?

【问题讨论】:

  • 错误信息是什么?
  • 控制台没有错误,但在回调错误中返回并且它没有''取正确的值来保存
  • 响应中的 HTTP 状态是什么?看起来你没有回应任何东西。尝试使用 json 响应。看到这个post

标签: javascript php jquery cakephp backbone.js


【解决方案1】:

尝试将模型中的url 更改为urlRoot

TaskModel = Backbone.Model.extend({
    urlRoot: '/step_task/ajax_save'
});

【讨论】:

  • 我觉得不是url的问题,因为我看到我进入了控制器的函数里面,不知道是不是这个问题
  • 那么console.log(model);console.log(response); 会在控制台打印什么?
  • console.log(model) 打印模型,并且在 console.log(response) 中我看到一个数组,其中 responseText 中有我从控制器发送的回声。但总是在回调错误中,因为我在控制台中看到错误日志消息 console.log('error');
  • 我认为问题出在您的服务器上,尝试在没有主干模型的情况下进行测试。
  • 好的,但我怎样才能在我的函数中获取正确的值?因为我无法从其中的骨干模型中打印价值,所以我无法理解它
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多