为了将路径定义为资源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
Run Code Online (Sandbox Code Playgroud)
按照典型的REST CRUD,PUT/PATCH用于更新操作,DELETE用于destroy操作.我认为这意味着定义典型的资源交互,即使在手动定义自己的路由和控制器操作时也是如此.
以下是我对与Laravel进行这些交互的理解的核心:
Route::put和DELETE 来定义接受PUT的路径Route::delete.Input门面用Illuminate\Http\Request::input典型化的相互作用,将返回json_decode的JSON的内容,所有的GET GET请求或POST的所有参数,否则参数.我们必须使用json或者根本不使用PUT或DELETE(很好,因为http PUT和DELETE请求不是普遍支持的)._method数据中的a ,以便路由可以强制执行动词.PUT和DELETE是否仅用于创建外部可访问的json REST API,还是用于其他目的?除了使用不同的端点路由到相同的URI,是否存在一些好处,强制存在_methodin $_POST或json?
PUT和DELETE应该是幂等的,但这甚至在Laravel中实现了吗?这是我必须在我的控制器中发生的事情,还是路由以某种方式强制执行?
本质上,如果Laravel中的PUT和DELETE在功能上与POST相同,除了REST语义和并行路由之外,我何时以及为什么要在POST上使用它们?
小智 2
PUT当你想要更新一条记录时,你可以使用方法DELETE,当你想要删除一条记录时,你可以使用方法。
请注意,在足智多谋的控制器中,PUT和DELETE方法都指向同一个url (resource/{resource}),因此如果不使用PUT或区分方法DELETE,将会出现问题。