2014-02-25 47 views
0

我有一個網站在cakephp開發,我在骨幹中使用一個簡單的應用程序。 現在我想從骨幹保存數據,但不起作用,總是返回內部回調錯誤,並沒有採取正確的值來保存表內。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); 
} 

功能可按我該如何解決呢?

+0

有什麼錯誤訊息? – linstantnoodles

+0

在控制檯中沒有錯誤,但在回調錯誤內返回並且它沒有正確的值來保存 –

+0

響應中的HTTP狀態是什麼?它看起來並不像你在迴應任何事情。嘗試使用json進行響應。看到這[後](http://stackoverflow.com/questions/1226330/how-to-return-the-correct-content-type-for-json-in-cakephp)。 – linstantnoodles

回答

1

嘗試在你的模型改變urlurlRoot

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

我覺得不是url的問題,因爲我看到我在控制器裏面輸入了函數,不知道是不是這個問題 –

+0

那麼'console.log(model);'和'console是什麼意思呢?日誌(響應);'打印到控制檯? –

+0

console.log(模型)打印模型,並在console.log(響應)內我看到一個數組,其中responseText裏面有我從我的控制器發送的回聲。但總是在回調錯誤,因爲我看到內部控制檯錯誤日誌消息console.log('錯誤'); –