Laravel导入CSV,索引问题

时间:2017-10-19 16:10:41

标签: php laravel csv indexing import

试图找出我收到以下错误的原因:

未定义的索引插件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方面的列上的索引?

1 个答案:

答案 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.');
}
}