La importacion de archivos csv viene explicada en otro post el cual te aconsejo que leas para poder continuar con este, Importación a la base de datos de archivos Excel y CSV, ahora lo que haremos será usar los metodos que trae laravel Excel para que la carga de archivos muy grandes a la base de datos no de convierta en un cuello de botella y se pueda hacer un uso mas optimo de la memoria. Para elo en nuestra clase ProductsImport del post anterior hay que implementarle las clases WithBatchInserts y WithChunkReading quedando el codigo del archivo de esta manera:
<?php namespace App\Imports; use App\Models\Product; use Illuminate\Support\Collection; use Maatwebsite\Excel\Concerns\ToCollection; use Maatwebsite\Excel\Concerns\WithChunkReading; use Maatwebsite\Excel\Concerns\WithBatchInserts; use Maatwebsite\Excel\Concerns\ToModel; class ProductsImport implements ToModel, WithBatchInserts, WithChunkReading { /** * @param Collection $collection */ public function model(array $row) { if($row[0] != 'PRODUCT'){ return new Product([ 'reference' => $row[0], 'category ' => $row[1], 'cost' => $row[2], 'quantity' => $row[3], ]); } } public function batchSize(): int { return 10000; } public function chunkSize(): int { return 10000; } }
¿Necesitas ayuda, no dudes en contactar? jaronu42[@]gmail.com. Saludos!!