Ember.js REST 업데이트 (PUT)가 작동하지 않음

점퍼 rbk

내 RESTFul GET, DELETE가 작동하지만 이상하게도 PUT (편집)가 데이터베이스를 업데이트하지 못했습니다.

포스트 편집을위한 핸들 바 템플릿 :

<script type="text/x-handlebars" id="post">
<h1>View/Update Posts</h1>
{{#if isEditing}}
  <p>Title: {{input type="text" value=title}}</p>
  <p>Author: {{input type="text" value=author}}</p>
  <p>Body: {{textarea value=body}}</p>
  <button {{action 'doneEditing' this}}>Done</button>
{{else}}
  <p>Title : {{title}}</p>
  <p>Author: {{author}}</p>
  <p>Body  : {{body}}</p>
  <button {{action 'edit'}}>Edit</button>
{{/if}}

PostController

App.PostController = Ember.ObjectController.extend({
   isEditing: false,

   actions: {
      edit: function() {
         this.set('isEditing', true);
      },

      doneEditing: function(post) {
         this.set('isEditing', false);
         post.save(); //NOT WORKING - NOT UPDATING THE DATABASE RECORD!!!
      }
  }
});

REST 어댑터 및 데이터 모델

App.Post = DS.Model.extend({
  title: DS.attr('string'),
  author: DS.attr('string'),
  body: DS.attr('string')
});

App.ApplicationAdapter = DS.RESTAdapter.extend({
   namespace: 'emberpostsrest/api'
});

휴먼 앱 URL

http://localhost/emberpostsrest

RESTFul 서버 (SLIM PHP 사용)

http://localhost/emberpostsrest/api

작업 REST

http://localhost/emberpostsrest/api/posts (GET all)
http://localhost/emberpostsrest/api/posts/1 (GET via id)
http://localhost/emberpostsrest/api/posts/1 (DELETE via id)

편집 용 RESTFul API는 이미 PHP curl을 사용하여 테스트되었으며 정상적으로 작동합니다.

//PUT - update
$data = array("id" => 3, "title" => "3", "author" => "2", "body" => "1");                                                                    
$data_string = json_encode($data); 

$ch = curl_init('http://localhost:8080/emberpostsrest/api/posts/3');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");                                                                     
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);                                                                  
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);                                                                      
curl_setopt($ch, CURLOPT_HTTPHEADER, array(                                                                          
    'Content-Type: application/json',                                                                                
    'Content-Length: ' . strlen($data_string))                                                                       
); 

슬림 한 PHP 코드

$app->put('/posts/:id', 'updatePostByID'); //update post via id

function updatePostByID($id) 
{
    $request = \Slim\Slim::getInstance()->request();
    $body = $request->getBody();
    $post = json_decode($body);
    $sql = "UPDATE posts 
            SET title = :title, 
                author = :author,
                body = :body
            WHERE id = :id";

    try 
    {
        $db = getConnection();
        $stmt = $db->prepare($sql); 
        $stmt->bindParam("id", $post->id); 
        $stmt->bindParam("title", $post->title);
        $stmt->bindParam("author", $post->author);
        $stmt->bindParam("body", $post->body);
        $stmt->execute();
    } 
    catch(PDOException $e) 
    {
        $errorMessage = $e->getMessage();
    }
}

도움을 주셔서 감사합니다 : D

피터 브라운

Ember에서 들어오는 데이터를 검사하면 값이 "posts"네임 스페이스에 입력되어 있음을 알 수 있습니다.

즉,이 대신 :

{
  "id": "1",
  "title": "my title",
  "author": "me",
  "body": "the body"
}

다음과 같이 들어옵니다.

{
  "posts": {
    "id": "1",
    "title": "my title",
    "author": "me",
    "body": "the body"
  }
}

이것은 ember-data에 대한 규칙이므로 Ember 측에서 문제를 해결하기보다는 PHP 코드를 업데이트하고 싶을 것입니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

데이터가 표시되지 않음-Ember js-Rest Api

분류에서Dev

ember 업데이트 후 LinkTo가 작동하지 않습니다.

분류에서Dev

Ember.js 인증 작업이 작동하지 않음

분류에서Dev

Ember Js, Ember-Highcharts가 chartData의 변경 사항을 업데이트하지 않음

분류에서Dev

Ember.computed가 Ember.Array로 업데이트되지 않음

분류에서Dev

비동기 업데이트 후 Ember.js 관찰자가 실행되지 않음

분류에서Dev

Ember 데이터 일대 다 관계가 작동하지 않음

분류에서Dev

Ember.js json 라우팅이 작동하지 않음

분류에서Dev

Ember.js :보기 바인딩이 작동하지 않음

분류에서Dev

Ember Data Rest 어댑터 오류 처리가 작동하지 않음

분류에서Dev

Django Rest Framework가 UpdateAPIView로 ImageField를 업데이트하지 않음

분류에서Dev

Ember.js : 부트 스트랩 된 jQuery 바인딩이 작동하지 않음

분류에서Dev

자동 업데이트 이미지가 작동하지 않음

분류에서Dev

put-rest-api aws cli가 엔드 포인트 설명 태그를 업데이트하지 않음

분류에서Dev

ember 데이터 배열 UI가 pushObject에서 업데이트되지 않음

분류에서Dev

Ember 설비가 작동하지 않음

분류에서Dev

Ember 설비가 작동하지 않음

분류에서Dev

Ember.js를 업데이트하지 않는 중첩 된 뷰

분류에서Dev

d3.js (v3) enter ()가 막대 차트 업데이트에서 작동하지 않음

분류에서Dev

Node Js 이미지 업로드가 작동하지 않음

분류에서Dev

업데이트 패널 트리거가 작동하지 않음

분류에서Dev

포드 구조에서 scss 파일이 업데이트되면 Ember Livereload가 작동하지 않습니다.

분류에서Dev

ASP.net 업데이트 패널에서 홀더 JS가 작동하지 않음

분류에서Dev

Rails api Android Rest Client POST 및 PUT가 작동하지 않음

분류에서Dev

JS가 Textbox를 업데이트하지 않음

분류에서Dev

Django rest 프레임 워크, 업데이트 수행이 작동하지 않음

분류에서Dev

업데이트 후 NetBeans가 작동하지 않음

분류에서Dev

flutter 업데이트 목록, setstate가 작동하지 않음

분류에서Dev

Tortoise에서 SVN 업데이트가 작동하지 않음

Related 관련 기사

  1. 1

    데이터가 표시되지 않음-Ember js-Rest Api

  2. 2

    ember 업데이트 후 LinkTo가 작동하지 않습니다.

  3. 3

    Ember.js 인증 작업이 작동하지 않음

  4. 4

    Ember Js, Ember-Highcharts가 chartData의 변경 사항을 업데이트하지 않음

  5. 5

    Ember.computed가 Ember.Array로 업데이트되지 않음

  6. 6

    비동기 업데이트 후 Ember.js 관찰자가 실행되지 않음

  7. 7

    Ember 데이터 일대 다 관계가 작동하지 않음

  8. 8

    Ember.js json 라우팅이 작동하지 않음

  9. 9

    Ember.js :보기 바인딩이 작동하지 않음

  10. 10

    Ember Data Rest 어댑터 오류 처리가 작동하지 않음

  11. 11

    Django Rest Framework가 UpdateAPIView로 ImageField를 업데이트하지 않음

  12. 12

    Ember.js : 부트 스트랩 된 jQuery 바인딩이 작동하지 않음

  13. 13

    자동 업데이트 이미지가 작동하지 않음

  14. 14

    put-rest-api aws cli가 엔드 포인트 설명 태그를 업데이트하지 않음

  15. 15

    ember 데이터 배열 UI가 pushObject에서 업데이트되지 않음

  16. 16

    Ember 설비가 작동하지 않음

  17. 17

    Ember 설비가 작동하지 않음

  18. 18

    Ember.js를 업데이트하지 않는 중첩 된 뷰

  19. 19

    d3.js (v3) enter ()가 막대 차트 업데이트에서 작동하지 않음

  20. 20

    Node Js 이미지 업로드가 작동하지 않음

  21. 21

    업데이트 패널 트리거가 작동하지 않음

  22. 22

    포드 구조에서 scss 파일이 업데이트되면 Ember Livereload가 작동하지 않습니다.

  23. 23

    ASP.net 업데이트 패널에서 홀더 JS가 작동하지 않음

  24. 24

    Rails api Android Rest Client POST 및 PUT가 작동하지 않음

  25. 25

    JS가 Textbox를 업데이트하지 않음

  26. 26

    Django rest 프레임 워크, 업데이트 수행이 작동하지 않음

  27. 27

    업데이트 후 NetBeans가 작동하지 않음

  28. 28

    flutter 업데이트 목록, setstate가 작동하지 않음

  29. 29

    Tortoise에서 SVN 업데이트가 작동하지 않음

뜨겁다태그

보관