簡體   English   中英

為什么限於更新的Laravel資源控制器會生成兩條路由?

[英]Why does a Laravel resource controller limited to update generate two routes?

routes.php給出以下定義的路由:

Route::resource('smoker','SmokerController',['only' => ['update']]);

..導致兩條不同路線的產生:

| PUT   | profile/smoker/{smoker}| profile.smoker.update | App\Http\Controllers\Profile\SmokerController@update |
| PATCH | profile/smoker/{smoker}|                       | App\Http\Controllers\Profile\SmokerController@update |

我可能會猜測,在安靜的環境中, PUTPATCH動詞都足夠接近,以致它們都受到“更新”限制。 我找不到任何文檔來支持這種猜測,也找不到任何文檔說明為什么一個(PUT)會自動將其別名設置為profile.smoker.update

更重要的是混亂,是一個類似的限制,“秀”,結果在動詞GETHEAD被合並為GET|HEAD路由列表中。

| GET|HEAD | profile/smoker/{smoker}| profile.smoker.show | App\Http\Controllers\Profile\SmokerController@show |

為什么GETHEAD合並,而PUTPATCH不合並?

RFC定義了PUT與PATCH之間的區別,有關該信息,請參見。 一個示例是評論中鏈接到的答案( 示例 )。 但是,對於Laravel框架,確實沒有什么區別。

關於您的第二個問題,為什么PUT和PATCH不在路徑中合並,這實際上只是一個疏忽。 根據此拉取請求 ,此疏忽已在Laravel 5.2中得到糾正。 因此,從5.2開始,PUT和PATCH路由應顯示為合並,就像GET和HEAD路由一樣。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM