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

时间:2013-12-19 08:36:03

标签: 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

根据典型的REST CRUD,因此PUT / PATCH用于更新操作,DELETE用于销毁操作。我认为这意味着定义典型的资源交互,即使在手动定义我自己的路由和控制器操作时也是如此。

以下是我对与Laravel进行这些互动的理解的核心:

PUT和DELETE是否仅用于创建外部可访问的json REST API,还是用于其他目的?除了使用不同的端点路由到相同的URI之外是否有一些好处,强制_method或json中存在$_POST

PUT和DELETE应该是幂等的,但这甚至在Laravel中实现了吗?这是我必须在我的控制器中发生的事情,还是路由以某种方式强制执行?

基本上,如果Laravel中的PUT和DELETE在功能上与POST相同,除了REST语义和并行路由之外,我何时以及为什么要在POST上使用它们?

2 个答案:

答案 0 :(得分:2)

如果要更新记录,请使用PUT方法;如果要删除记录,则使用DELETE方法。

请注意,在资源丰富的控制器中,PUTDELETE方法都指向同一url (resource/{resource}),因此如果您不将方法与PUT或{区分开来{1}},这将是一个问题。

答案 1 :(得分:1)

获取:要获取数据,

POST :要提交数据,

输入::要更新数据,

删除:销毁数据