Seeders in Laravel

What are Seeders in Laravel?

In Laravel, a Seeder is a tool for populating the database with test or initial data. Seeders are typically used to configure default application data, such as administrative users, roles, or predetermined settings.


Origin

Seeders were added in Laravel to make database startup and testing operations easier by automating data collection.


Why are Seeders Used?

  1. Speeds Up Development: Databases are automatically populated during development or testing.
  2. Ensures Consistency: Creates dependable and reproducible test environments.
  3. Supports Data Initialization: Provides default data for application functionality.

Best Practices.

  1. Organize Seeders Logically: Classify related seeders into relevant groups.
  2. Use Factories: Combine factories and seeders to generate dynamic data.
  3. Avoid Sensitive Data: Don't hardcode sensitive information into seeders.

Example in Action

Create a seeder:

php artisan make:seeder UserSeeder

In the seeder class:

use Illuminate\Database\Seeder;
use App\Models\User;

class UserSeeder extends Seeder
{
    public function run()
    {
        User::factory()->count(10)->create();
    }
}

Run the seeder:

php artisan db:seed --class=UserSeeder

Read more