使用PHP的{EmberJS API问题

时间:2016-09-26 11:01:53

标签: php ember.js

我正在使用Laravel / PHP为Ember输出一些JSON来获取....这里有几件事。

首先,我的PHP看起来像这样(有另一种方式发送数据)

        return Response::json([
        'articles'  => $articles->toArray()
        ], $statusCode);   

这是我以前做的事情。

      foreach($articles as $article) {
         $response['articles'][] = [ 
            'id'    =>  $article->id,
            'body'  =>  $article->body,
            'title' =>  $article->title
        ];
     }

         return Response::json([
        'articles'  => $articles->toArray()
        ], $statusCode);   

第一个PHP代码段工作正常,但第二个没有。我得到了Ember关于资源类型的各种错误。

接下来的问题是Ember头。现在我正在使用RESTAdapter处理一切,但我应该使用JSONAPIAdapter吗?当我尝试使用JSONAPIAdapterJSONAPISerializer时,我得到错误

  

必须存在以下一个或多个键:\“data \”,   \“错误\”,\“meta

。我可以让这个错误消失,但后来我得到一个关于未定义类型或未知资源的错误。

1 个答案:

答案 0 :(得分:1)

使用JSONAPIAdapter并非强制要求,但如果您可以控制API,那么您可以很好地使用它。 API响应应遵循格式(http://jsonapi.org/format/

单个资源对象的样本格式

{
  "data": {
    "type": "articles",
    "id": "1",
    "attributes": {
      // ... this article's attributes
    }        
  }
}

多个资源对象的样本格式

{      
  "data": [{
    "type": "articles",
    "id": "1",
    "attributes": {
      "title": "JSON API paints my bikeshed!"
    }
  }, {
    "type": "articles",
    "id": "2",
    "attributes": {
      "title": "Rails is Omakase"
    }
  }]
}