在laravel中将Excel导入数据库?
Posted
技术标签:
【中文标题】在laravel中将Excel导入数据库?【英文标题】:Import Excel to Database in laravel? 【发布时间】:2020-02-24 21:25:29 【问题描述】:我正在尝试导入一个 excel 文件并将信息保存到数据库表中。现在我收到一个错误
此路由不支持 POST 方法。支持的方法: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');
我做错了什么?
【问题讨论】:
【参考方案1】:尝试只像这样提交给'/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');
【讨论】:
这是一个复制/粘贴错误,我确实将它们都作为我的项目中的导入 哦,好吧。好吧,我会更新你的问题,这样其他人就不会试图纠正同样的事情。也许尝试删除/import
并尝试仅提交给/impteachers
。我会更新我的答案。
我试过这个,但现在我得到了一个419 Page Expired
@Nancy,419 通常与 csrf_token 有关。查看此article 了解更多信息。
我脑子里有<meta name="csrf-token" content=" csrf_token() ">
和@csrf
,如果我在表单中添加与csrf
相关的任何内容,页面不会加载,没有错误但不会加载。跨度>
以上是关于在laravel中将Excel导入数据库?的主要内容,如果未能解决你的问题,请参考以下文章
在 Visual Studio 2010 中将 Excel 数据导入 DataGridView
在 SQL Server 2008 中将数据从浮点类型的 Excel 导入 varchar