[PREGUNTA]
Hola chicos. Estoy tratando de importar un archivo de Excel, pero aparece un error que comienza con el mensaje "Error en la serialización del cierre: la serialización de 'Illuminate \ Http \ UploadedFile' no está permitida". He intentado solucionar algunos problemas, pero no entiendo por qué sigue ocurriendo este problema. Este es el código fuente que utilizo para manejar archivos de Excel de importación.
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 ayúdame a resolver este problema.
No puede pasar $request
al cierre, ya que se serializa y se pone en cola. Tienes que pasar variables explícitas.
Prueba esto:
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();
}
Gracias @patrickbrouwers. Eso me salvó la vida: +1:.
Gracias @patrickbrouwers.
Comentario más útil
No puede pasar
$request
al cierre, ya que se serializa y se pone en cola. Tienes que pasar variables explícitas.Prueba esto: