试图找出我收到以下错误的原因:
未定义的索引插件ID
我正在使用Maatwebsite \ Excel进行导入,并尝试使用此处的指南:
https://appdividend.com/2017/06/12/import-export-data-csv-excel-laravel-5-4/
我想我把所有东西都放在了正确的位置,但我从这段代码中得到了上述错误:
public function import(Request $request)
{
if($request->file('imported-file'))
{
$path = $request->file('imported-file')->getRealPath();
$data = Excel::load($path, function($reader)
{
})->get();
if(!empty($data) && $data->count())
{
foreach ($data->toArray() as $row)
{
if(!empty($row))
{
$dataArray[] =
[
'plugin_id' => $row['Plugin ID'],
'cve' => $row['CVE'],
'cvss' => $row['CVSS'],
'risk' => $row['Risk'],
'host' => $row['Host'],
'protocol' => $row['Protocol'],
'port' => $row['Port'],
'name' => $row['Name'],
'synopsis' => $row['Synopsis'],
'description' => $row['Description'],
'solution' => $row['Solution'],
'see_also' => $row['See Also'],
'plugino_utput' => $row['Plugin Output']
];
}
}
if(!empty($dataArray))
{
Shipping::insert($dataArray);
return back();
}
}
}
}
这是在我的控制器文件中,并试图说明与我的数据库相比,CSV中的标题不同。
任何想法为什么会抱怨csv方面的列上的索引?
答案 0 :(得分:0)
我现在从另一篇文章中结束了这一点。帖子里面还有一个额外的部分,但是在$ value上做了一个var_dump(我留下了,但注释掉了)我可以看到$ value已经是一个数组了,所以不要把它传递给另一个数组,我试过了插入它似乎有效。
仍在处理错误和成功消息。
感谢ljubadr帮助我学习如何在代码中放入一些打印类型语句,以查看在各个地方输出的内容。
public function importExcel(Request $request)
{
if($request->hasFile('import_file')){
$path = $request->file('import_file')->getRealPath();
$data = Excel::load($path, function($reader) {})->get();
if(!empty($data) && $data->count()){
foreach ($data->toArray() as $key => $value) {
if(!empty($value)){
#var_dump($value);
Item::insert($value);
}
}
return back()->with('success','Insert Record successfully.');
}
}
#return back()->with('error','Please Check your file, Something is wrong there.');
}
}