【发布时间】:2019-06-11 11:38:51
【问题描述】:
我正在尝试在 laravel 中导入 CSV 文件,其中包含要存储在 mysql 数据库的多个表中的数据。实际上,我有多个电子邮件、地址、电话等的联系人,所以我希望它们与从 CSV 新创建的联系人的 contactId 一起存储在各自的表中。
目前在单个表中的插入是有效的,但是当我介绍要插入到其他表中的电子邮件、地址等列时,它会给我在联系人表中找不到的列,因为电子邮件地址等列不存在。
控制器插入方法
public function processImport(Request $request){
$data = CsvData::find($request->csv_data_file_id);
$csv_data = json_decode($data->csv_data, true);
foreach ($csv_data as $row) {
$contact = new Contact(); //Insertion in Contact table
foreach (config('app.contact_fields') as $index => $field) {
if ($data->csv_header) {
$contact->$field = $row[$request->fields[$field]];
} else {
$contact->$field = $row[$request->fields[$index]];
}
}
$contact->save(); //Insertion in Contact table
$id = $contact->id;
}
return 'Successfully imported!';
}
现在我想知道有什么方法可以将要插入到单独表中的列与导入的单个 CSV 分开吗? 任何帮助将不胜感激。 谢谢
【问题讨论】:
-
当然可以。只需将字段更具体地分离为 2 个表的表结构,然后将数据放入正确的模型中
-
我没有明白你的意思,请具体说明。