для повторного использования я планирую разделить свою функцию на две функции.По сути, концепция функции заключается в загрузке входного файла и предварительном просмотре данных.
Рабочий код
public function uploadImportCsv()
{
$file = Input::file('file');
$extension = $file->getClientOriginalExtension();
$filename = sha1($file->getClientOriginalName().time()) . ".{$extension}";
//upload to s3
#doing upload to s3
$data = [
'title'=>[],
'value'=>[]
];
$results = Excel::load(Input::file('file'), function($reader){
})->get();
foreach ($results as $result) {
foreach ($result as $key => $value) {
if(!in_array($key, $data['title'])){
array_push($data['title'], $key);
}
}
array_push($data['value'], $result);
}
return Response::json(['filename' => $filename, 'data' => $data]);
}
после разделения
public function previewCsv()
{
//Preview table
$data = [
'title'=>[],
'value'=>[]
];
$results = Excel::load(Input::file('file'), function($reader){
})->get();
foreach ($results as $result) {
foreach ($result as $key => $value) {
if(!in_array($key, $data['title'])){
array_push($data['title'], $key);
}
}
array_push($data['value'], $result);
}
return Response::json(['data' => $data]);
}
public function uploadImportCsv()
{
$file = Input::file('file');
$extension = $file->getClientOriginalExtension();
$filename = sha1($file->getClientOriginalName().time()) . ".{$extension}";
//upload to s3
#doing upload to s3
$data = $this->previewCsv();
return Response::json(['filename' => $filename,'data' => $data]);
}
Я вызвал функцию из функции предварительного просмотра, но она не работает.