What Are Seeders in Laravel?
#Laravel #Laravel Seeder #Database Seeding #Laravel Database #Laravel Tutorial #Laravel Backend #PHP Laravel #Laravel Factory

What Are Seeders in Laravel?

Seeders in Laravel are used to insert dummy or default data into database tables. They are very useful during development, testing, and when setting up initial system data such as roles, admin users, or settings. Instead of manually inserting data, Laravel seeders automate the process.

When to Use Seeders

  • When you want sample data for development
  • When you need default records (Admin, Roles, Categories)
  • To test relationships (users → posts → comments)

How to Create and Use Seeders in Laravel

  1. Create a Seeder

    php artisan make:seeder UserSeeder

    This command creates database/seeders/UserSeeder.php.

  2. Write Seeder Code

    use Illuminate\Database\Seeder;
    use Illuminate\Support\Facades\DB;
    use Illuminate\Support\Facades\Hash;
    
    class UserSeeder extends Seeder
    {
        public function run(): void
        {
            DB::table('users')->insert([
                'name' => 'Admin User',
                'email' => 'admin@example.com',
                'password' => Hash::make('password'),
            ]);
        }
    }
  3. Register Seeder in DatabaseSeeder

    Edit database/seeders/DatabaseSeeder.php and add:

    public function run(): void
    {
        $this->call([
            UserSeeder::class,
        ]);
    }
  4. Run All Seeders

    php artisan db:seed

    This will run all registered seeders.

  5. Run a Specific Seeder

    php artisan db:seed --class=UserSeeder

    Useful for testing a single table.

  6. Run Migration and Seeder Together

    php artisan migrate:fresh --seed

    Warning: This will delete all existing data.

  7. Using Model Factory with Seeder (Recommended)

    use App\Models\User;
    
    User::factory()->count(10)->create();

    Best for generating bulk dummy data.

Common Seeder Use Cases

  • Create default admin user
  • Insert roles & permissions
  • Add categories & products
  • Populate test records

Seeder Best Practices

  • Keep one seeder per table
  • Use factories for large data sets
  • Never run seeders on production without checking
  • Use migrate:fresh --seed only in development

Summary

  • make:seeder → create seeder
  • Write insert logic
  • Register in DatabaseSeeder
  • Run using db:seed
  • Use factories for large datasets
×
MLM PLAN
×
×