我有一个用Laravel构建的REST api。在我添加的路线中:
DELETE /v1/category/{category} App\Http\Controllers\CategoriesController@destroy
在我的xampp
本地计算机上,每个工作正常,并触发destroy
方法。但是当我请求该路由时,它在生产服务器上将其视为GET
请求并返回该类别的记录而不是删除它。
要解决此问题,我避免使用DELETE
请求,因此我将路由注册为:
GET /v1/category/delete/{category} App\Http\Controllers\CategoriesController@destroy
为什么DELETE
请求被视为GET
?
更新:以下是routes.php文件:
<?php
/**
* Api Route Group V1
*/
RestRoute::group(['version' => 'v1', 'namespace' => 'App\Http\Controllers'], function () {
RestRoute::group(['prefix' => 'v1'], function () {
RestRoute::resource('articles', 'ArticlesController');
RestRoute::get('posts/user/{id}', 'PostsController@userPosts');
RestRoute::resource('posts', 'PostsController');
RestRoute::resource('items', 'ItemsController');
RestRoute::get('recipes/all', 'RecipesController@showAll');
RestRoute::resource('recipes', 'RecipesController');
RestRoute::resource('profile', 'ProfileController');
RestRoute::get('tag', 'TagsController@index');
RestRoute::get('tag/{tag}', 'TagsController@show');
RestRoute::get('tag/{tag}/articles', 'TagsController@tagArticles');
RestRoute::post('category', 'CategoriesController@store');
RestRoute::get('category/list', 'CategoriesController@CategoriesList');
RestRoute::get('category/recipes/{category}', 'CategoriesController@showRecipes');
RestRoute::get('category/{category}', 'CategoriesController@show');
RestRoute::patch('category/{category}', 'CategoriesController@update');
RestRoute::delete('category/{category}', 'CategoriesController@destroy');
RestRoute::post('authenticate', 'AuthenticateController@authenticate');
RestRoute::get('authenticate/logout', 'AuthenticateController@logout');
RestRoute::post('register', 'AuthenticateController@store');
});
});