我正在使用 Maatwebsite 包通過上傳 Excel 檔案將一些資料插入資料庫。
所以這是我的路線:
Route::get('import-form', 'Olympiad\OlympiadExamExecutionController@importForm');
Route::post('import-form', 'Olympiad\OlympiadExamExecutionController@executeImport')->name('addcutsom.execution');
這是我的控制器:
use App\Imports\CustomExamImport;
use App\Olympiad\OlympiadExamExecution;
use Excel;
public function importForm()
{
return view('import');
}
public function executeImport(Request $request)
{
Excel::import(new CustomExamImport, $request->file);
return "Records are imported";
}
這是CustomExamImport:
class CustomExamImport implements ToModel
{
public function model(array $row)
{
$user_id = DB::table('members')->where('mbr_national_code', $row[3])->value('mbr_usr_id');
return new OlympiadExamExecution([
'oex_correct_answer_count' => $row[7],
'oex_wrong_answer_count' => $row[8],
'oex_no_answer_count' => $row[9],
'oex_score' => $row[10],
]);
}
}
這是刀片形式:
<form action="{{ route('addcutsom.execution') }}" method="POST">
@csrf
<label class="control-label">Upload File:</label>
<input class="form-control" name="file" type="file">
<button class="btn btn-primary" type="submit">???</button>
</form>
現在,當我嘗試從計算機上傳 Excel 檔案時,出現此錯誤:
在路徑中找不到檔案:file.xlsx
那么外面有什么問題呢?
uj5u.com熱心網友回復:
你得到了錯誤
在 null 上呼叫成員函式 getPath()
因為檔案沒有上傳。
更改您的表單以包含enctype上傳檔案
<form action="{{ route('addcutsom.execution') }}" method="POST" enctype="multipart/form-data">
您可以在此處找到有關該屬性的模式詳細資訊
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/312822.html
