【发布时间】:2021-01-25 05:13:59
【问题描述】:
尝试将 excel 数据导入我的 mysql 数据库并得到 ErrorException Undefined offset: 0.
尝试使用 var_dump($row) 检查数据行的数组。它看起来关闭并且不确定如何使数据很好地显示以便能够传递给db。
array(5) { ["a"]=> string(1) "B" ["white"]=> string(5) "Green" ["example1_at_gmailcom"]=> string(18) "example2@gmail.com" [60123456789]=> int(60162313142) [5]=> int(5) }
这是我的 excel 数据:
型号
public function model(array $row)
{
var_dump($row);
return new ContactList([
'first_name' => $row[0],
'last_name' => $row[1],
'email' => $row[2],
'phone' => $row[3],
'group_id' => $row[4],
]);
}
我已经尝试使用字符串替换 $row[],它可以完美地将数据存储到我的数据库中。
控制器
if($request->hasFile('selected_file')){
$file = $request->file('selected_file');
Excel::import(new ContactListsImport, $file);
return redirect()->back()->with('success', 'Data saved successfully!');
}
【问题讨论】:
-
你正在转储你得到的数组......你看到里面有一个键
0吗? -
sry,我是新手。不,我没有看到它,但即使我删除了 vardump,我仍然得到同样的错误 ErrorException Undefined offset: 0
-
因为没有索引
0,正如您在转储数组时看到的并且没有键0...您无法访问不存在的数组的键...您在这里遇到问题,因为该文件的第一行被用作标题(列名),您应该查看文档以调整此行为或不使用此行为 -
你使用的是什么版本的 Laravel 和 Laravel Excel?
标签: excel laravel import import-from-excel laravel-excel