【发布时间】:2019-06-16 23:06:15
【问题描述】:
我们正在创建一个应用程序,用户可以上传包含多个表格信息的 Excel 文件。 (例如,请参见下面的屏幕截图)。是否可以拆分这些数据并创建多个模型以使用 laravel excel 导入数据库?如果没有,是否有您推荐使用的其他软件包?
如果我错了,请纠正我,但据我了解,控制器中每次导入只能有一个模型。
控制器:
class ImportsController
{
public function import()
{
Excel::import(new DataImport, 'testSheet.xlsx'); //only allows for one model
return redirect('/')->with('success', 'All good!');
}
}
进口:
class DataImport implements ToModel
{
public function model(array $row)
{
// need way to create and return multiple models
return new Data([
]);
}
}
路线:
Route::get('/import', 'ImportsController@import');
第一行是表名,第二行是字段名,后面都是数据
【问题讨论】:
-
答案是肯定的。从 Excel 中提取数据后,您可以随意处理数据。您可以在控制器中使用任意数量的模型。这仅取决于您如何使用它们。
-
@Indra 感谢您的回复。抱歉,我对 laravel 和 php 很陌生。你能提供一个例子来说明你如何做到这一点吗?我已经编辑了上面的问题以包含更多信息。据我了解,DataImport 中的“模型”函数通常返回一个在该函数中创建的模型。返回该模型后,导入方法将其导入数据库。那么如何通过读取 excel 表中的表格行来创建多个模型呢?