2014-02-25 12 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})); 
      } 
     }); 

이 내가 그것을 해결할 수있는 방법

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

StepTaskController.php

안에 내 funciton입니까?

+0

오류 메시지가 무엇입니까? – linstantnoodles

+0

콘솔에는 오류가 없지만 콜백 오류가 발생하면 저장하려면 올바른 값을 입력하십시오. –

+0

응답의 HTTP 상태는 무엇입니까? 당신이 아무 것도 대답하지 않는 것처럼 보입니다. json으로 응답 해보십시오. 이 [post] (http://stackoverflow.com/questions/1226330/how-to-return-the-correct-content-type-for-json-in-cakephp)를 참조하십시오. – linstantnoodles

답변

1

urlRoot에 모델의 url을 변경하려고 :

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

내가 컨트롤러의 기능에 들어가는 것을 보았 기 때문에 URL의 문제가 아닌 것 같아요. 문제가 무엇인지 모른다. –

+0

그래서'console.log (model);과'console. 로그 (응답);'콘솔에 출력 하시겠습니까? –

+0

console.log (model) 모델을 출력하고 console.log (response) 내부에 배열을 보았습니다. 여기서 내 responseText에는 컨트롤러에서 보내는 echo가 있습니다. 하지만 내부 콜백 오류 메시지는 콘솔 내부에 오류 로그 메시지 console.log ('error')가 있기 때문에 항상 내부 콜백 오류입니다. –