Laravel Advance | Laravel Seeder from CSV File Example | by Raviya Technical | Medium
E.g. for alternatives table;
<?php
namespace Database\\Seeders;
use Illuminate\\Database\\Console\\Seeds\\WithoutModelEvents;
use Illuminate\\Database\\Seeder;
use Illuminate\\Support\\Facades\\DB;
use App\\Models\\Alternatives;
class AlternativesTableSeeder extends Seeder
{
/**
* Run the database seeds.
*/
public function run()
{
$file_path = resource_path('csv/alternatives_csv.csv');
Alternatives::truncate();
$csvFile = fopen($file_path, 'r');
$firstline = true;
while (($data = fgetcsv($csvFile, 2000, ';')) !== false) {
if (!$firstline) {
Alternatives::create([
'name' => $data['1'],
'dutch_name' => $data['2'],
'alternatives' => $data['3'],
]);
}
$firstline = false;
}
fclose($csvFile);
}
}
I have ‘;’ delimter in csv files, yours might be different.
When adding seeders, don’t forget to import them in databaseseeder.php