【问题标题】:Why Laravel-json-api update does not work?为什么 Laravel-json-api 更新不起作用?
【发布时间】:2019-12-24 21:08:13
【问题描述】:

我使用 Laravel-json-api 框架创建了一个 API,没有控制器,因为框架可以完成所有工作。

它适用于索引和读取,而不是更新。

我使用 Postman 进行更新,但它返回数据库中的记录,没有任何更改,也没有任何错误消息。

api.php 文件:

JsonApi::register('v1')->routes(function ($api) {
        $api->resource('titre')->only('index', 'read', 'update');
});

要更新滴定度记录,我使用 /localhost/api/v1/titre/777777
我使用 Postman,具有正确的 Content-Type:application/vnd.api+json

这是我邮递员的原始身体:

{
     "data": {
        "type": "titre",
        "id": "777777",
        "attributes": {
            "ACTIF": "O",
        },
        "links": {
            "self": "http://localhost/api/v1/titre/777777"
        }
    }
}

我希望 API 更新 ACTIF 属性,但结果是:

{
     "data": {
        "type": "titre",
        "id": "777777",
        "attributes": {
            "ACTIF": "D",
        },
        "links": {
            "self": "http://localhost/api/v1/titre/777777"
        }
    }
}

没有错误消息或任何内容,但应该从 D 更新为 O 的 ACTIF 属性没有更新。

根据 Laravel-json-api 文档,这应该可行,对吧? 谁能告诉我我的错误在哪里?

【问题讨论】:

  • 更新时是否使用了 PUT 方法? This tutorial 告诉我们这样做。
  • 不,我使用了 PATCH 请求。 {json:api} 规范不支持 PUT。我还向本教程的作者发送了一条消息,表明他使用了 PUT 方法而不是 PATCH 方法。

标签: php json laravel laravel-5.8 json-api


【解决方案1】:

您所面临的问题可能是由多种原因造成的。请检查以下几点:

如果这不起作用,请在您的问题中包含curl 请求,因为它有助于我们重现您的请求。

【讨论】:

  • 是的,我使用 PATCH,我知道 {json:api} 不支持 PUT。你是对的,ACTIF 属性是不可填充的。现在可以了,非常感谢。
  • 太棒了。很高兴我能帮助你。如果您能接受答案以帮助其他人,那就太好了。
猜你喜欢
  • 2017-07-27
  • 1970-01-01
  • 2011-03-15
  • 1970-01-01
  • 2019-12-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-10
相关资源
最近更新 更多