2017-01-22 12 views
0

エクセル(XLSX)ファイルを私のdatabase.inファイルにインポートしたいのですが、私のファイルには3枚あり、シートごとに42000〜55000行と11列あります。Excelインポートのエラー

私は自分のファイルをアップロードするためにその時間をつもりですとき

Serialization of closure failed: Serialization of 'Closure' is not allowed 

エラーを取得して私のコードは、私use ($request)を使用しておりませんの

 Excel::filter('chunk')->load($file)->chunk(250, function($reader) use ($request) 
     { 
      $filePath = $request->file_name; 

      $getFileInfo = session()->get('fileinfo'); 

      $insertFileInfo = FileInfo::firstOrCreate($getFileInfo); 
      $getCaseID = $insertFileInfo->case_id; 

      //dd($insertFileInfo); 

      $datetime = $request->datetime; 

      $aparty = $request->aparty; 
      $bparty = $request->bparty; 
      $call_duration = $request->call_duration; 
      $usage_type = $request->usage_type; 
      $lac = $request->lac; 
      $cell = $request->cell; 
      $imei = $request->imei; 
      $imsi = $request->imsi; 
      $address = $request->address; 
      $network_type = $request->network_type; 
      foreach ($reader->toArray() as $row) { 
       foreach ($row as $item) { 
        if (!empty($item[$datetime]) && ($item[$datetime] != $datetime)) { 

         $data = [ 
          'case_id' => $getCaseID, 
          'datetime' => $datetime == "NO Data Field" ? '' : Carbon::parse(self::clean($item[$datetime]))->toDateTimeString(), 
          'aparty' => $aparty == "NO Data Field" ? '' : self::clean($item[$aparty]), 
          'bparty' => $bparty == "NO Data Field" ? '' : self::clean($item[$bparty]), 
          'call_duration' => $call_duration == "NO Data Field" ? '0' : str_replace('second(s)', '', $item[$call_duration]) == '' ? '0' : str_replace('second(s)', '', $item[$call_duration]), 
          'usage_type' => $usage_type == "NO Data Field" ? 'Undefined' : str_replace(' ', '_', $item[$usage_type]), 
          'lac' => $lac == "NO Data Field" ? self::convertCellToLac($item[$cell]) : $item[$lac], 
          'cell' => $cell == "NO Data Field" ? self::convertCellFormat($item[$cell]) : self::convertCellFormat($item[$cell]), 
          'imei' => $imei == "NO Data Field" ? 'Undefined' : $item[$imei] == '' ? 'Undefined' : $item[$imei], 
          'imsi' => $imsi == "NO Data Field" ? 'Undefined' : $item[$imsi] == '' ? 'Undefined' : $item[$imsi], 
          'address' => $address == "NO Data Field" ? 'Undefined' : $item[$address] == '' ? 'Undefined' : $item[$address], 
          'network_type' => empty($item[$network_type]) ? 'Undefined' : $network_type == "NO Data Field" ? 'Undefined' : $item[$network_type] 
         ]; 
         try { 
          CallCdr::firstOrCreate($data); 

         } catch (\Exception $e) { 
         } 

        } 

       } 


      } 
    }); 

return redirect()->route('home'); 

あるMaatwebsite/Laravel-エクセルに

を使用していますこのエラーは消えましたが、私はすべてのリクエストパラメータが必要です。

リダイレクトされません。

答えて

0

これは意図した動作です。要求をシリアル化することはできません。

これを解決するには、変数から分離するために関連する詳細を割り当てて、代わりにchunk()に渡すだけです。

$inputs = $request->all(); // returns an array 

Excel::filter('chunk')->load($file)->chunk(250, function($reader) use ($inputs) { 
    .... 
} 
関連する問題