问题描述
尝试将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!');
}
解决方法
您需要从Import类中删除WithHeadingRow
接口,以将数字索引用于数组。
根据documentation,当您的Import类实现WithHeadingRow
时,它将使用第一行作为数组的索引,然后将其从提供的行中删除。