我尝试在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';
}
当我使用方法运行时,它运行良好,但使用方法发布,放置和删除它不起作用 这是为什么?
答案 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',
];