将 Excel 导入 laravel 中的数据库?
Import Excel to Database in laravel?
我正在尝试导入 excel 文件并将信息保存到数据库 table。现在我收到一个错误
The POST method is not supported for this route. Supported methods: GET, HEAD, PUT, PATCH, DELETE.
我看的所有教程都没有出现这个错误,我也是这样,不知道是什么问题。我正在使用这个包 "maatwebsite/excel": "~2.1.3"
.
这是我的 vue
<el-form :action="'impteachers/import'" method="post" enctype="multipart/form-data">
<el-input type="file" name="file"/>
<el-input type="submit" value="upload"/>
</el-form>
这是控制器
public function import(Request $request)
{
$request->validate([
'file' => 'required|mimes:xls,xlsx'
]);
$path = $request->file('file')->getRealPath();
$data = Excel::load($path)->get();
if ($data->count()) {
foreach ($data as $key => $value){
$arr[] = [
'NOMBRE' => $value->name,
'CEDULA' => $value->card,
'CARNET' => $value->scard,
'TIPO-USUARIO' => $value->user_type_id,
'CORREO' => $value->email,
'PASSWORD' => $value->password,
];
}
if (!empty($arr)) {
User::insert($arr);
}
}
return redirect('/imports');
}
这些是web.php
中的路线
Route::resource('impteachers', 'ImportTeacherController');
Route::post('impteachers/import', 'ImportTeacherController@import');
我做错了什么?
尝试仅像这样提交给 '/impteachers'
<el-form :action="'/impteachers'" method="post" enctype="multipart/form-data">
<el-input type="file" name="file"/>
<el-input type="submit" value="upload"/>
</el-form>
并将你的路线设置为
Route::post('/impteachers', 'ImportTeacherController@import');
我正在尝试导入 excel 文件并将信息保存到数据库 table。现在我收到一个错误
The POST method is not supported for this route. Supported methods: GET, HEAD, PUT, PATCH, DELETE.
我看的所有教程都没有出现这个错误,我也是这样,不知道是什么问题。我正在使用这个包 "maatwebsite/excel": "~2.1.3"
.
这是我的 vue
<el-form :action="'impteachers/import'" method="post" enctype="multipart/form-data">
<el-input type="file" name="file"/>
<el-input type="submit" value="upload"/>
</el-form>
这是控制器
public function import(Request $request)
{
$request->validate([
'file' => 'required|mimes:xls,xlsx'
]);
$path = $request->file('file')->getRealPath();
$data = Excel::load($path)->get();
if ($data->count()) {
foreach ($data as $key => $value){
$arr[] = [
'NOMBRE' => $value->name,
'CEDULA' => $value->card,
'CARNET' => $value->scard,
'TIPO-USUARIO' => $value->user_type_id,
'CORREO' => $value->email,
'PASSWORD' => $value->password,
];
}
if (!empty($arr)) {
User::insert($arr);
}
}
return redirect('/imports');
}
这些是web.php
中的路线Route::resource('impteachers', 'ImportTeacherController');
Route::post('impteachers/import', 'ImportTeacherController@import');
我做错了什么?
尝试仅像这样提交给 '/impteachers'
<el-form :action="'/impteachers'" method="post" enctype="multipart/form-data">
<el-input type="file" name="file"/>
<el-input type="submit" value="upload"/>
</el-form>
并将你的路线设置为
Route::post('/impteachers', 'ImportTeacherController@import');