Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ===========================================
- Controller
- ============================================
- public function import_excel(Request $request)
- {
- // set waktu agar tidak dibatasi oleh laravel
- set_time_limit(0);
- // validasi
- $this->validate($request, [
- 'file' => 'required|mimes:csv,xls,xlsx'
- ]);
- // menangkap file excel
- $file = $request->file('file');
- // membuat nama file unik
- $nama_file = rand().$file->getClientOriginalName();
- // upload ke folder file_siswa di dalam folder public
- $file->move('file_sales',$nama_file);
- // import data
- Excel::import(new SalesImport, public_path('/file_sales/'.$nama_file));
- // notifikasi dengan session
- Session::flash('sukses','Data Siswa Berhasil Diimport!');
- // alihkan halaman kembali
- return redirect('/sales');
- }
- ======================================================================
- Sales Import
- =====================================================================
- pakai Queuing chunks yaa
- sumber : https://docs.laravel-excel.com/3.1/imports/queued.html
- <?php
- namespace App\Imports;
- use App\Sales;
- use Maatwebsite\Excel\Concerns\ToModel;
- use Illuminate\Contracts\Queue\ShouldQueue;
- use Maatwebsite\Excel\Concerns\WithChunkReading;
- class SalesImport implements ToModel, WithChunkReading, ShouldQueue
- {
- /**
- * @param array $row
- *
- * @return \Illuminate\Database\Eloquent\Model|null
- */
- public function model(array $row)
- {
- return new Sales([
- 'region' => $row[0],
- 'country' => $row[1],
- ]);
- }
- public function chunkSize(): int
- {
- return 1000;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement