要在 laravel 內將 json 資料批次匯入資料庫,可以先將要匯入的 json 檔放到 storage 資料夾,然後把 json 讀入後,再透過迴圈寫入資料庫。
Route::get("/insertData", function(){ $json = file_get_contents(storage_path('data.json')); $objs = json_decode($json,true); foreach($objs as $value){ $data["id"]=null; $data['year']=$value["年份"]; $data['name']=$value["獎名"]; $data['online']=1; $data['item']=$value["獎項"]; $data['subject']=$value["得獎題目"]; $data['people']=$value["得獎者"]; $newData =Modal::firstOrNew(['id'=>$data['id']],$data); if(!$newData->wasRecentlyCreated){ $newData->fill($data); } $newData->save(); } });
其中如果遇到欄位名稱不一樣,就像上面這樣設定好欄位,再透過 model 輸入即可。