[質問]
こんにちは、みんな。 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
をクロージャーに渡すことはできません。これは、シリアル化されてキューに入れられるためです。 明示的な変数を渡す必要があります。これを試して: