[PERGUNTA]
Ola pessoal. Estou tentando importar um arquivo do Excel, mas recebo um erro ao iniciar que "Falha na serialização do fechamento: a serialização de 'Illuminate \ Http \ UploadedFile' não é permitida". Tentei resolver alguns problemas, mas não entendo por que esse problema ainda ocorre. Este é o código-fonte que uso para lidar com a importação de arquivos do Excel.
if($request->hasFile('file')){
$file = $request->file('file')->getRealPath();
\Excel::filter('chunk')->load($file)->chunk(200, function($result) use ($request){
foreach ($result as $item) {
if(collect($item)->has('title') && collect($item)->has('category_id') && collect($item)->has('file')){
Content::create([
'title' => $item->title,
'category_id' => $item->category_id,
'file' => $item->file,
'reference' => $request->input('reference')
]);
}
}
});
return redirect()->back();
}
Por favor me ajude a resolver este problema.
Você não pode passar $request
para o encerramento, pois ele é serializado e enfileirado. Você tem que passar variáveis explícitas.
Experimente isto:
if($request->hasFile('file')){
$file = $request->file('file')->getRealPath();
$reference = $request->input('reference');
\Excel::filter('chunk')->load($file)->chunk(200, function($result) use ($reference){
foreach ($result as $item) {
if(collect($item)->has('title') && collect($item)->has('category_id') && collect($item)->has('file')){
Content::create([
'title' => $item->title,
'category_id' => $item->category_id,
'file' => $item->file,
'reference' => $reference
]);
}
}
});
return redirect()->back();
}
Obrigado @patrickbrouwers. Isso salvou minha vida: +1:.
Obrigado @patrickbrouwers.
Comentários muito úteis
Você não pode passar
$request
para o encerramento, pois ele é serializado e enfileirado. Você tem que passar variáveis explícitas.Experimente isto: