What is the value of using PUT/DELETE with Laravel?

你。 提交于 2019-12-21 04:54:07

问题


For defining a route as a resource with Route::resource, the docs indicate:

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

as per typical REST CRUD so PUT/PATCH is used for update actions and DELETE for destroy actions. I would think that is meant to define a typical resource interaction, even when manually defining my own routes and controller actions.

Here's the core of what I understand about these interactions with Laravel:

  • You can define a route to accept PUT with Route::put and DELETE with Route::delete.
  • The Input facade uses Illuminate\Http\Request::input typifying interactions and will return json_decode of content for json, all GET parameters for GET requests or all POST parameters otherwise. We must use json or not actually use PUT or DELETE at all (fine because http PUT and DELETE requests are not universally supported).
  • Laravel's own form helpers use POST for PUT and DELETE requests, including a _method in the data so that the routing can enforce the verbs.

Are PUT and DELETE solely there to create externally-accessible json REST APIs or do they serve another purpose? Is there some benefit aside from routing to the same URI with a different endpoint, enforcing the presence of a _method in $_POST or the json?

PUT and DELETE are supposed to be idempotent, but is this even implemented in Laravel? Is this something that I have to make happen in my controllers or does the routing enforce this somehow?

Essentially, if PUT and DELETE in Laravel are functionally identical to POST, aside from REST semantics and parallel routing, when and why should I use them over POST?


回答1:


You use PUT method when you want to Update a record, And you use DELETE method when you want to Delete a record.

Note that in the resourceful controller, both PUT and DELETE method directed to the same url (resource/{resource}), so if you don't distinguish the method with PUT or DELETE, it will be a problem.



来源:https://stackoverflow.com/questions/20676798/what-is-the-value-of-using-put-delete-with-laravel

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!