Laravel API 404 error
我正在使用Laravel 5.4制作简单的API,但遇到了问题。 我创建了用于测试的路由和一些数据,但是当我通过放置
路线/api.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <?php Route::group(['prefix' => 'v1'], function() { Route::resource('meeting', 'MeetingController', [ 'except' => ['edit', 'create'] ]); Route::resource('meeting/registration', 'RegistrationController', [ 'only' => ['store', 'destroy'] ]); Route::post('user', [ 'uses' => 'AuthController@store' ]); Route::post('user/signin', [ 'uses' => 'AuthController@signin' ]); }); |
会议控制器
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | <?php namespace App\\Http\\Controllers; use Illuminate\\Http\ equest; use App\\Http\ equests; class MeetingController extends Controller { public function __construct() { // $this->middleware('name'); } public function index() { return"It works!"; } public function store(Request $request) { return"It works!"; } public function show($id) { return"It works!"; } public function update(Request $request, $id) { return"It works!"; } public function destroy($id) { return"It works!"; } } |
RegistrationController
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | namespace App\\Http\\Controllers; use Illuminate\\Http\ equest; use App\\Http\ equests; class RegistrationController extends Controller { public function store(Request $request) { return"It works!"; } /** * Remove the specified resource from storage. * * @param int $id * @return \\Illuminate\\Http\ esponse */ public function destroy($id) { return"It works!"; } } |
AuthController
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <?php namespace App\\Http\\Controllers; use Illuminate\\Http\ equest; use App\\Http\ equests; class AuthController extends Controller { public function store(Request $request) { return"It works!"; } public function signin(Request $request) { return"It works!"; } } |
命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | +--------+-----------+--------------------------------------------+----------------------+-----------------------------------------------------+------------+ | Domain | Method | URI | Name | Action | Middleware | +--------+-----------+--------------------------------------------+----------------------+-----------------------------------------------------+------------+ | | GET|HEAD | / | | Closure | web | | | POST | api/v1/meeting | meeting.store | App\\Http\\Controllers\\MeetingController@store | api | | | GET|HEAD | api/v1/meeting | meeting.index | App\\Http\\Controllers\\MeetingController@index | api | | | POST | api/v1/meeting/registration | registration.store | App\\Http\\Controllers\ egistrationController@store | api | | | DELETE | api/v1/meeting/registration/{registration} | registration.destroy | App\\Http\\Controllers\ egistrationController@destroy | api | | | DELETE | api/v1/meeting/{meeting} | meeting.destroy | App\\Http\\Controllers\\MeetingController@destroy | api | | | PUT|PATCH | api/v1/meeting/{meeting} | meeting.update | App\\Http\\Controllers\\MeetingController@update | api | | | GET|HEAD | api/v1/meeting/{meeting} | meeting.show | App\\Http\\Controllers\\MeetingController@show | api | | | POST | api/v1/user | | App\\Http\\Controllers\\AuthController@store | api | | | POST | api/v1/user/signin | | App\\Http\\Controllers\\AuthController@signin | api | +--------+-----------+--------------------------------------------+----------------------+-----------------------------------------------------+------------+ |
与版本5.4中一样,已经在端点中添加了api,因此无需在网址中再次添加" api"。
请更改为:
1 2 3 | Route::group(['prefix' => 'api/v1'], function() { } |
至
1 2 3 | Route::group(['prefix' => 'v1'], function() { } |
在Laravel 5.4中,您的
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <?php Route::prefix('v1')->group(function () { Route::resource('meeting', 'MeetingController', [ 'except' => ['edit', 'create'] ]); Route::resource('meeting/registration', 'RegistrationController', [ 'only' => ['store', 'destroy'] ]); Route::post('user', [ 'uses' => 'AuthController@store' ]); Route::post('user/signin', [ 'uses' => 'AuthController@signin' ]); }); |
有关更多信息,请在此处访问其文档。
请不要在路由中使用/ api,使其保持简单,例如
1 2 |
如果路线中有任何错误,它将列出您的所有路线,因此此处不会列出。
你试一试
1 | localhost:8888/{projectname}/public/api/v1/meeting |
不要忘记