Laravel - Mysql 到 JSON

Laravel - Mysql to JSON

目前我有一个员工列表作为 json 文件。

{
    "id": 1,
    "departments": "1",
    "name": "Bill Smith",
    "profilePic": "/img/people/Office/bill-smith.jpg",
    "title": "Office Manager"
  },

我现在想将它们存储在数据库中,但仍然 return 它们为 JSON。

如何使用我的路线进行设置?这将是一个非常基本的过滤器,按部门 ID。

我想我会做一个获取请求

Route::get('people/{department}', function () {

});

如何 return json?

如果你有一个 Employee 模型,它看起来像这样:

Route::get('people/{department}', function ($departmentId) {
    return Employee::where('department_id', $departmentId)->get();
});

Laravel 在将对象写入客户端之前将其转换为 JSON。

最基本的模型查询是

Route::get('people/{department}', function ($department) { return Employee::where('departments',$department)->get(); }

assume Employee is your model

然后 Laravel 会自动将您的查询转换为 json。

仅供参考: 您也可以将此请求发送到控制器方法 return,如上

正如您所说,您在 json 文件中有员工列表,然后首先在 Seeding.

假设您在数据库中创建了一个 table 个部门,并将您的数据存储在所有 5 列中(id, departments, name, profilePic, title),然后使用以下命令创建一个模型

php artisan make:model Department

有关模型的更多详细信息,请访问https://laravel.com/docs/5.4/eloquent#eloquent-model-conventions

然后简单地通过路由检测该请求,return 数据为 json:

Route::get('people/{department}', function ($departmentId) {
     $data = Department::where('departments', $departmentId)->first();
     return response()->json($data);
});