用于将路由定义为资源Route::resource
,文档表明:
Verb Path Action Route Name
-------------------------------------------------------------------
GET /resource index resource.index
GET /resource/create create resource.create
POST /resource store resource.store
GET /resource/{resource} show resource.show
GET /resource/{resource}/edit edit resource.edit
PUT/PATCH /resource/{resource} update resource.update
DELETE /resource/{resource} destroy resource.destroy
根据典型的 REST CRUD,因此 PUT/PATCH 用于更新操作,DELETE 用于销毁操作。我认为这意味着定义典型的资源交互,即使手动定义我自己的路由和控制器操作也是如此。
以下是我对与 Laravel 交互的理解的核心:
- 您可以定义一个路由来接受 PUT
Route::put
并删除Route::delete.
- The
Input
立面用途Illuminate\Http\Request::input
典型的相互作用并将返回json_decode
json 的内容、GET 请求的所有 GET 参数或所有 POST 参数。我们必须使用 json,或者根本不使用 PUT 或 DELETE(很好,因为 http PUT 和 DELETE 请求并未得到普遍支持)。
-
Laravel 自己的表单助手使用 POST 来处理 PUT 和 DELETE 请求,包括_method以便路由可以强制执行动词 https://stackoverflow.com/a/14757041/3109014.
PUT 和 DELETE 仅用于创建外部可访问的 json REST API,还是有其他用途?除了路由到具有不同端点的相同 URI、强制存在_method
in $_POST
还是 json?
PUT 和 DELETE 应该是幂等的,但这在 Laravel 中实现了吗?这是我必须在我的控制器中发生的事情还是路由会以某种方式强制执行此操作?
本质上,如果 Laravel 中的 PUT 和 DELETE 在功能上与 POST 相同,除了 REST 语义和并行路由之外,我何时以及为什么应该使用它们而不是 POST?
You use PUT
方法当你想更新一条记录时,你使用DELETE
当你想删除一条记录时的方法。
请注意,在资源丰富的控制器中,两者PUT
and DELETE
方法指向相同url (resource/{resource})
,所以如果你不区分方法与PUT
or DELETE
,这将是一个问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)