使用Laravel为新创建的资源显示“ 404未找到”

时间:2019-09-22 11:06:46

标签: mysql laravel rest http-status-code-404

我正在尝试使用XAMPP使用Laravel(5.8.35)/ MySQL创建一个网页。 设置数据库并使用一些测试数据对其进行初始化之后,我想创建一些资源来检索(以我的情况为例)学生的数据。

在我的案例中,标准的Laravel登录页面位于 localhost / testlaravel / public 。我正在尝试访问 localhost / testlaravel / public / api / students 上的资源,导致404 |找不到。

可能是什么问题?预先谢谢你

以下是一些希望所有相关文件的代码段。

routes \ api.php

// List students
Route::get('/students','StudentController@index');

// List single student
Route::get('/student/{id}', 'StudentController@show');

App \ Http \ Controllers \ StudentController

public function index() {
    $students = Student::paginate(20);
    return StudentResource::collection($students);
}

App \ Http \ Resources \ StudentResource

public function toArray($request) {
    return parent::toArray($request);
}

Edit1:

php artisan route:list的控制台输出是:

+--------+----------+------------------+------+------------------------------------------------+--------------+
| Domain | Method   | URI              | Name | Action                                         | Middleware   |
+--------+----------+------------------+------+------------------------------------------------+--------------+
|        | GET|HEAD | /                |      | Closure                                        | web          |
|        | POST     | api/student      |      | App\Http\Controllers\StudentController@store   | api          |
|        | GET|HEAD | api/student/{id} |      | App\Http\Controllers\StudentController@show    | api          |
|        | PUT      | api/student/{id} |      | App\Http\Controllers\StudentController@update  | api          |
|        | DELETE   | api/student/{id} |      | App\Http\Controllers\StudentController@destroy | api          |
|        | GET|HEAD | api/students     |      | App\Http\Controllers\StudentController@index   | api          |
|        | GET|HEAD | api/user         |      | Closure                                        | api,auth:api |
|        | POST     | student          |      | App\Http\Controllers\StudentController@store   | web          |
|        | GET|HEAD | student/{id}     |      | App\Http\Controllers\StudentController@show    | web          |
|        | PUT      | student/{id}     |      | App\Http\Controllers\StudentController@update  | web          |
|        | DELETE   | student/{id}     |      | App\Http\Controllers\StudentController@destroy | web          |
|        | GET|HEAD | students         |      | App\Http\Controllers\StudentController@index   | web          |
+--------+----------+------------------+------+------------------------------------------------+--------------+```

1 个答案:

答案 0 :(得分:3)

您说的是,您要创建一个网页,所以我认为您必须将Route添加到用于路由的routes / web.php文件中,而routes / api.php是用于api的

如果您正在创建api,请检查XAMPP是否也在起作用,这可能是一些连接问题 像您的IP地址一样