我正在制作简单的API与Laravel 5.4我有问题。我为测试创建了路由和一些数据,但是当我测试如果路由与Postman正常工作时,通过放入localhost:8888/{projectname}/api/v1/meeting
它会显示我error 404 page not found
。我究竟做错了什么?Laravel API 404错误
路由/ api.php
<?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' => '[email protected]'
]);
Route::post('user/signin', [
'uses' => '[email protected]'
]);
});
MeetingController
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
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
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
class RegistrationController extends Controller
{
public function store(Request $request)
{
return "It works!";
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
return "It works!";
}
}
AuthController
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
class AuthController extends Controller
{
public function store(Request $request)
{
return "It works!";
}
public function signin(Request $request)
{
return "It works!";
}
}
命令php artisan route:list
的输出:
+--------+-----------+--------------------------------------------+----------------------+-----------------------------------------------------+------------+
| Domain | Method | URI | Name | Action | Middleware |
+--------+-----------+--------------------------------------------+----------------------+-----------------------------------------------------+------------+
| | GET|HEAD |/ | | Closure | web |
| | POST | api/v1/meeting | meeting.store | App\Http\Controllers\[email protected] | api |
| | GET|HEAD | api/v1/meeting | meeting.index | App\Http\Controllers\[email protected] | api |
| | POST | api/v1/meeting/registration | registration.store | App\Http\Controllers\[email protected] | api |
| | DELETE | api/v1/meeting/registration/{registration} | registration.destroy | App\Http\Controllers\[email protected] | api |
| | DELETE | api/v1/meeting/{meeting} | meeting.destroy | App\Http\Controllers\[email protected] | api |
| | PUT|PATCH | api/v1/meeting/{meeting} | meeting.update | App\Http\Controllers\[email protected] | api |
| | GET|HEAD | api/v1/meeting/{meeting} | meeting.show | App\Http\Controllers\[email protected] | api |
| | POST | api/v1/user | | App\Http\Controllers\[email protected] | api |
| | POST | api/v1/user/signin | | App\Http\Controllers\[email protected] | api |
+--------+-----------+--------------------------------------------+----------------------+-----------------------------------------------------+------------+
'api.php'路由已经以'/ api'作为前缀。你不需要再自己添加这个。使用你当前的设置,你的路由是'localhost:8888/{projectname}/api/api/v1/meeting' – fubar
我试过也删除了带路由的api,它显示了同样的错误 –
你不需要'/ { projectname}'在你的请求url中。 –