2015-12-30 5 views
1

Учитывая следующий определенный маршрут в routes.php:Почему контроллер ресурсов Laravel ограничен обновлением, генерируя два маршрута?

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

..results в генерации двух различных маршрутов:

| PUT | profile/smoker/{smoker}| profile.smoker.update | App\Http\Controllers\Profile\[email protected] | 
| PATCH | profile/smoker/{smoker}|      | App\Http\Controllers\Profile\[email protected] | 

Я рискну предположить, что оба PUT и PATCH глаголов достаточно близко в что они оба подпадают под ограничение «обновления». Я не могу найти документацию, подтверждающую эту догадку, и я не могу найти где-нибудь документацию, почему у одного (PUT) есть свой псевдоним, автоматически установленный, в данном случае, profile.smoker.update.

Что более странно, что подобное ограничение, «шоу», результаты в глаголах GET и HEAD объединяемые в GET|HEAD в списке маршрутов.

| GET|HEAD | profile/smoker/{smoker}| profile.smoker.show | App\Http\Controllers\Profile\[email protected] | 

Почему GET и HEAD объединены, но PUT и PATCH нет?

+0

Отметьте здесь ответ: http://stackoverflow.com/questions/21660791/what-is-the-main-difference-between-patch-and-put-request – naneri

+0

Спасибо naneri, но мой вопрос больше о том, почему они разделены в laravel как маршруты, но оба сопоставляются с одним методом обновления. – Chris

ответ

2

RFC определяют различия между PUT и PATCH, а информация для этого отсутствует. Одним из примеров является ответ, связанный с комментариями (example). Однако для рамки Laravel действительно нет никакой разницы.

Что касается вашего второго вопроса, почему PUT и PATCH не объединены в маршрутах, это действительно просто недосмотр. Этот надзор был исправлен в Laravel 5.2, в соответствии с этим pull request. Поэтому, начиная с 5.2, маршруты PUT и PATCH должны отображаться слиянием, как и маршруты GET и HEAD.

+1

Я достаточно удобен с разницей между 'PUT' и' PATCH', более смущенными тем, почему они являются отдельными маршрутами, даже если они сопоставляются с одним и тем же контроллером метод обновления. Вторая часть вашего ответа разрешила эту путаницу - а именно, что это надзор. благодаря – Chris

Смежные вопросы