方法发布,放置,删除路由不适用于laravel 5

时间:2015-03-14 05:54:05

标签: php laravel-5

我尝试在laravel 5上测试api休息,但我遇到方法post,put,delete的问题 在我的 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';
}

当我使用方法运行时,它运行良好,但使用方法发布,放置和删除它不起作用 这是为什么?

1 个答案:

答案 0 :(得分:4)

如果您想制作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

由于laravel附带了内置的csrf令牌验证中间件,您必须通过_token传递您的发布数据请求。或者,您可以通过执行以下操作来访问那些没有csrf令牌验证的路由:

转到app目录下的Http文件夹中的kernel.php,并注释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',
];