有什么方法可以阻止读者在任何行数据不同时读取excel文件?当我上传excel文件时,我得到Undefined index: description
,这意味着在上传的文件中找不到description
。
有没有办法可以处理这个错误?
if ($request->file('imported-file')) {
$path = $request->file('imported-file')->getRealPath();
$data = Excel::load($path, function($reader) {
$reader->calculate(false);
})->get();
if (($request->file('imported-file')->getClientOriginalExtension()) != 'xlsx') {
return redirect('')->with('error','File Format may not be supported');
} else {
if (!empty($data) && $data->count()) {
foreach ($data->toArray() as $row) {
if (!empty($row)) {
$dataArray[] = [
'name' => $row['name'],
'description' => $row['description'],
];
}
}
if (!empty($dataArray)) {
Item::insert($dataArray);
return redirect('')->with('status','successfully added');
}
}
}
}
答案 0 :(得分:1)
而不是:
'description' => $row['description'],
你可以使用
'description' => array_get($row, 'description'),
答案 1 :(得分:0)
我也面临着同样的问题,这是我的解决方案,希望它能对某人有所帮助。
注意:这是针对Laravel 6.0,Importer类必须实现ToModel,WithHeadingRow这两个接口,
return new Holiday([
'name' => Arr::get($row,'name'),
'start_date' => Arr::get($row,'start_date'),
'end_date' => Arr::get($row,'end_date'),
]);