Laravel-excel: فشل تسلسل الإغلاق: غير مسموح بالتسلسل للملف "Illuminate \ Http \ UploadedFile"

تم إنشاؤها على ١٣ يونيو ٢٠١٧  ·  3تعليقات  ·  مصدر: Maatwebsite/Laravel-Excel

[سؤال]

maatwebsite / excel 2.1 ، Laravel 5.4

مرحبا يا شباب. أحاول استيراد ملف 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();
}

ال 3 كومينتر

لا يمكنك تمرير $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.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات