【发布时间】:2021-07-08 12:16:47
【问题描述】:
我已经阅读了很多关于 HTTP 方法差异和确切优势的资源 据我所知,这似乎是一份更好地理解和使用 REST API 的合同。 我的困惑如下:
我有一个表格:
<form action="{{ route('test') }}" method="POST">
@csrf
@method('PUT')
<input type="text" name="input1" >
<input type="text" name="input2" >
<button type="submit">send </button>
</form>
我有一张这样的桌子:
| id | input1 | input2 | input3
| -- | ----- | ------ |----|
| 1 | 100 | 220 | 400
在控制器中,我更新了我们发送的所有请求字段。
public function test(Request $request)
{
return Setting::find(1)->fill( $request->all())->save();
}
所有 PUT、PATCH、POST 方法的工作方式都相同。
如果应该完全重新生成资源,PUT 不会将 input3 更改为 NULL。
并且 PATCH 更改 input1 和 input2。
POST 也一样,因为我记下了资源 ID。
问题是,确切的 DIFF 是多少? 资源告诉我们:
create - POST
read - GET
update - PUT
modify - PATCH
delete - DELETE
虽然我们可以使用 POST 更新、修改甚至删除。
当我们使用表单请求时,发送的数据是完全一样的。
我们听说 PUT 方法完全重新生成资源,但它没有发生,它只更新 DB 中的已发送字段(仅更新了上例中的 Input1 和 input2)
我认为当我们不使用所有输入的表单以及部分发送数据时它们会起作用。
在实现上是否还有其他深刻而明显的差异?
【问题讨论】:
-
请分享更多关于您的问题的详细信息 - Laravel 是开源的,所以如果您想知道它是如何实现的,何不阅读他们的代码?
-
@NicoHaase 我刚刚更新了
标签: laravel patch put http-method