Skip to content

Seeders

Seeders are generated for each module depending on the module specification.

php
<?php

namespace Database\Seeders;

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

class OrderSeeder extends Seeder
{
    public function run(): void
    {
        $entities = Order::factory()
            ->count(50)
            ->create();

        foreach ($entities as $entity) {
            $entity->products()->attach($this->getRandomIdArray());
        }
    }

    private function getRandomIdArray()
    {
        $ids = range(1, 50);
        shuffle($ids);

        return array_slice($ids, 0, rand(1, 8));
    }
}

The seeders create 50 entities.

If the entities have any relations, the relations are also randomly assigned.

The seeders are added to the main DatabaseSeeder file.

php
<?php

namespace Database\Seeders;

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

class DatabaseSeeder extends Seeder
{
    /**
     * Seed the application's database.
     */
    public function run(): void
    {
        if (User::count() > 0) {
            return;
        }
        $this->call([UserSeeder::class, ProfileSeeder::class, AddressSeeder::class]);
    }
}