Advertisement
Guest User

Untitled

a guest
Jan 18th, 2020
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.65 KB | None | 0 0
  1. ===========================================
  2. Controller
  3. ============================================
  4. public function import_excel(Request $request)
  5.     {
  6.         // set waktu agar tidak dibatasi oleh laravel
  7.         set_time_limit(0);
  8.         // validasi
  9.         $this->validate($request, [
  10.             'file' => 'required|mimes:csv,xls,xlsx'
  11.         ]);
  12.  
  13.         // menangkap file excel
  14.         $file = $request->file('file');
  15.  
  16.         // membuat nama file unik
  17.         $nama_file = rand().$file->getClientOriginalName();
  18.  
  19.         // upload ke folder file_siswa di dalam folder public
  20.         $file->move('file_sales',$nama_file);
  21.  
  22.         // import data
  23.         Excel::import(new SalesImport, public_path('/file_sales/'.$nama_file));
  24.  
  25.         // notifikasi dengan session
  26.         Session::flash('sukses','Data Siswa Berhasil Diimport!');
  27.  
  28.         // alihkan halaman kembali
  29.         return redirect('/sales');
  30.     }
  31. ======================================================================
  32. Sales Import
  33. =====================================================================
  34. pakai Queuing chunks yaa
  35. sumber : https://docs.laravel-excel.com/3.1/imports/queued.html
  36. <?php
  37.  
  38. namespace App\Imports;
  39.  
  40. use App\Sales;
  41. use Maatwebsite\Excel\Concerns\ToModel;
  42. use Illuminate\Contracts\Queue\ShouldQueue;
  43. use Maatwebsite\Excel\Concerns\WithChunkReading;
  44.  
  45. class SalesImport implements ToModel, WithChunkReading, ShouldQueue
  46. {
  47.     /**
  48.     * @param array $row
  49.     *
  50.     * @return \Illuminate\Database\Eloquent\Model|null
  51.     */
  52.     public function model(array $row)
  53.     {
  54.         return new Sales([
  55.             'region' => $row[0],
  56.             'country' => $row[1],
  57.         ]);
  58.     }
  59.     public function chunkSize(): int
  60.     {
  61.         return 1000;
  62.     }
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement