繁体   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