[问题]
大家好。 我正在尝试导入一个 excel 文件,但我收到一条错误消息,提示“关闭序列化失败:不允许序列化 'Illuminate\Http\UploadedFile'”。 我已经尝试了一些故障排除,但我不明白为什么这个问题仍然发生。 这是我用来处理导入 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();
}
请帮我解决这个问题。
您不能将$request
传递到闭包中,因为它会被序列化和排队。 您必须传递显式变量。
试试这个:
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();
}
谢谢@patrickbrouwers。 这救了我的命 :+1: 。
谢谢@patrickbrouwers。
最有用的评论
您不能将
$request
传递到闭包中,因为它会被序列化和排队。 您必须传递显式变量。试试这个: