簡體   English   中英

方法發布,放置,刪除路線在laravel 5上不起作用

[英]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.

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