![](/img/trans.png)
[英]Laravel: Route::resource() GET & POST work, but PUT & DELETE throw MethodNotAllowedHttpException
[英]method post, put, delete route not work on laravel 5
我嘗試在laravel 5上測試api,但是方法發布,放置,刪除時遇到問題。
在我的route.php文件中,我有以下代碼:
Route::group(['prefix' => 'api'], function()
{
Route::group(['prefix' => 'user'], function()
{
Route::get('', ['uses' => 'UserController@allUsers']);
Route::get('{id}', ['uses' => 'UserController@getUser']);
Route::post('', ['uses' => 'UserController@saveUser']);
Route::put('{id}', ['uses' => 'UsercCntroller@updateUser']);
Route::delete('{id}', ['uses' => 'UserController@deleteUsers']);
});
});
Route::get('/', function()
{
return 'Enjoy the test...';
});
並且在UserController.php中具有代碼:
public function allUsers()
{
return 'test';
}
public function getUser($id)
{
return 'test get user';
}
public function saveUser()
{
return 'test save user';
}
public function updateUser($id)
{
return 'test update user';
}
public function deleteUsers($id)
{
return 'test delete user';
}
當我使用get方法運行它時,但在方法post中運行時,放置和刪除它不起作用。
為什么是這樣?
如果要制作REST API,請使用laravel的生成器。
使用php artisan make:controller UserController
Laravel使用所有必需的方法自動為您創建RESTful控制器類。
然后只在您的routes.php
放一行
Route::group(['prefix' => 'api'], function()
{
Route:resource('user', 'UserController');
});
就是這樣,現在您可以非常輕松地訪問獲取,發布,放置和刪除請求。
如果您想查看應該使用哪種方法的php artisan route:list
則只需php artisan route:list
啟動php artisan route:list
。
而且由於laravel內置了csrf令牌驗證中間件,因此您必須在發布數據請求中傳遞_token
。 或者,您可以通過執行以下操作來訪問這些路由,而無需進行csrf令牌驗證:
轉到kernel.php
中的Http文件夾中的應用程序目錄下,並發表意見csrfToken線。
protected $middleware = [
'Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode',
'Illuminate\Cookie\Middleware\EncryptCookies',
'Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse',
'Illuminate\Session\Middleware\StartSession',
'Illuminate\View\Middleware\ShareErrorsFromSession',
// 'App\Http\Middleware\VerifyCsrfToken',
];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.