2017-05-09 169 views
0

目前我有一個員工列表作爲json文件。Laravel - Mysql到JSON

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

我現在想要將這些存儲在數據庫中,但仍然將它們返回爲JSON。

如何設置我的路線?這將是一個非常基本的過濾器,由部門編號。

我相信我會做一個GET請求

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

}); 

如何返回JSON?

+1

Laravel自動轉換將數組響應轉換爲JSON。只需從您的路線返回一個數組。 – Gaurav

回答

0

正如你說你的員工名單一個JSON文件,那麼首先創建一個DB種子存儲在數據庫中的數據從該特定的json文件中藉助Seeding

比方說,你做的數據庫中的表部門存儲在全部5列(id, departments, name, profilePic, title)您的數據,然後做一個模型,用下面的命令

php artisan make:model Department 

有關模型的更多詳細信息,請https://laravel.com/docs/5.4/eloquent#eloquent-model-conventions

訪問

然後簡單檢測通過路由請求和作爲JSON返回數據:

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

爲什麼'first()'這將只返回一個員工,但一個部門可能有多個員工。它應該是'get()'返回所選部門中的所有員工 –

+0

@AbuSayem是的,因爲他可以使用'get()',我的主要觀點是告訴他正確的方式,它取決於他想要的東西,'get()'或'first()'。 –

0

如果你有一個Employee模型,它應該是這樣的:

Laravel將其寫入到客戶端之前,將對象轉換爲JSON。

0

非常基本的模型的查詢是

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

假設員工是你的模型

然後Laravel自動將您的查詢轉換爲json。

供參考:您還可以發送該請求到控制器方法的返回像上面