Пытаюсь импортировать файл Excel в Laravel 5.5 и вставить данные в базу данных. следуя этому уроку. https://laratutorials.wordpress.com/2017/10/03/how-to-import-excel-file-in-laravel-5-and-insert-the-data-in-the-database-laravel-tutorials/comment-page-1/#comment-262
Мне удалось получить и проверить выбранный файл.
но получаю эту ошибку: Свойство [имя] не существует в этом экземпляре коллекции.
public function import(Request $request){
//validate the xls file
$this->validate($request, array(
'file' => 'required'
));
if($request->hasFile('file')){
$extension = File::extension($request->file->getClientOriginalName());
if ($extension == "xlsx" || $extension == "xls" || $extension == "csv") {
$path = $request->file->getRealPath();
$data = Excel::load($path, function($reader) {
})->get();
if(!empty($data) && $data->count()){
foreach ($data as $key => $value) {
$insert[] = [
'name' => $value->name,
'email' => $value->email,
'phone' => $value->phone,
];
}
if(!empty($insert)){
$insertData = DB::table('students')->insert($insert);
if ($insertData) {
Session::flash('success', 'Your Data has successfully imported');
}else {
Session::flash('error', 'Error inserting the data..');
return back();
}
}
}
return back();
}else {
Session::flash('error', 'File is a '.$extension.' file.!! Please upload a valid xls/csv file..!!');
return back();
}
}
}
dd ($ data) вывести это
SheetCollection {#609 ▼
#title: ""
#items: array:3 [▼
0 => RowCollection {#412 ▼
#heading: array:3 [▼
0 => "name"
1 => "email"
2 => "phone"
]
#title: "Sheet1"
#items: array:3 [▼
0 => CellCollection {#575 ▼
#title: null
#items: array:3 [▼
"name" => "emma"
"email" => "emma@yahoo.com"
"phone" => 89889898.0
]
}
1 => CellCollection {#621 ▼
#title: null
#items: array:3 [▼
"name" => "Godstime John"
"email" => "jgodstime10@yahoo.com"
"phone" => 909989898.0
]
}
2 => CellCollection {#414 ▼
#title: null
#items: array:3 [▼
"name" => "John Emma"
"email" => "jgh@email.com"
"phone" => 9090898.0
]
}
]
}
1 => RowCollection {#571 ▼
#heading: array:1 [▼
0 => ""
]
#title: "Sheet2"
#items: []
}
2 => RowCollection {#572 ▼
#heading: array:1 [▼
0 => ""
]
#title: "Sheet3"
#items: []
}
]
}
Я хочу иметь возможность загрузить строку в файле Excel (имя, адрес электронной почты, телефон) в таблицу ученика в моей базе данных, в которой есть поля (идентификатор, имя, адрес электронной почты, телефон).
Я прошел весь шаг по ссылке выше. все же я получаю вышеупомянутое сообщение об ошибке.