在Laravel中使用PUT/DELETE有什么价值?

sko*_*cs1 6 php laravel-4

为了将路径定义为资源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进行这些交互的理解的核心:

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,将会出现问题。