[QUESTION]
Bonjour gars. J'essaie d'importer un fichier Excel, mais j'obtiens une erreur commençant par "La sérialisation de la fermeture a échoué : la sérialisation de 'Illuminate\Http\UploadedFile' n'est pas autorisée". J'ai essayé quelques dépannages mais je ne comprends pas pourquoi ce problème persiste. C'est le code source que j'utilise pour gérer les fichiers Excel d'importation.
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();
}
Merci de m'aider à résoudre ce problème.
Vous ne pouvez pas passer $request
dans la fermeture, car cela est sérialisé et mis en file d'attente. Vous devez passer des variables explicites.
Essaye ça:
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();
}
Merci @patrickbrouwers. Cela m'a sauvé la vie :+1: .
Merci @patrickbrouwers.
Commentaire le plus utile
Vous ne pouvez pas passer
$request
dans la fermeture, car cela est sérialisé et mis en file d'attente. Vous devez passer des variables explicites.Essaye ça: