Laravel-excel: Serialisasi penutupan gagal: Serialisasi 'Illuminate\Http\UploadedFile' tidak diizinkan

Dibuat pada 13 Jun 2017  ·  3Komentar  ·  Sumber: Maatwebsite/Laravel-Excel

[PERTANYAAN]

maatwebsite/excel 2.1, Laravel 5.4

Hallo teman-teman. Saya mencoba mengimpor file excel, tetapi saya mendapatkan kesalahan saat memulai bahwa "Serialization of closure failed: Serialization of 'Illuminate\Http\UploadedFile' is notallowed". Saya sudah mencoba beberapa pemecahan masalah tetapi saya tidak mengerti mengapa masalah ini masih terjadi. Ini adalah kode sumber yang saya gunakan untuk menangani impor file 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();
}

Tolong bantu saya untuk memecahkan masalah ini.

Komentar yang paling membantu

Anda tidak dapat meneruskan $request ke dalam penutupan, karena itu akan diserialisasi dan diantrekan. Anda harus melewati variabel eksplisit.

Coba ini:

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();
}

Semua 3 komentar

Anda tidak dapat meneruskan $request ke dalam penutupan, karena itu akan diserialisasi dan diantrekan. Anda harus melewati variabel eksplisit.

Coba ini:

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();
}

Terima kasih @patrickbrouwers. Itu menyelamatkan hidup saya :+1: .

Terima kasih @patrickbrouwers.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat