Files
FendxPHP/database/seeds/DatabaseSeeder.php

60 lines
1.7 KiB
PHP
Raw Permalink Normal View History

<?php
declare(strict_types=1);
use Fendx\Database\Seeder\Seeder;
use Fendx\Database\Seeder\RoleSeeder;
use Fendx\Database\Seeder\PermissionSeeder;
use Fendx\Database\Seeder\UserSeeder;
use Fendx\Database\Seeder\RolePermissionSeeder;
use Fendx\Database\Seeder\UserRoleSeeder;
/**
* 数据库种子数据主文件
*/
class DatabaseSeeder extends Seeder
{
/**
* 运行所有种子数据
*/
public function run(): void
{
$this->command->info('开始执行数据库种子数据...');
// 1. 创建角色数据
$this->command->info('正在插入角色数据...');
$this->call(RoleSeeder::class);
// 2. 创建权限数据
$this->command->info('正在插入权限数据...');
$this->call(PermissionSeeder::class);
// 3. 创建用户数据
$this->command->info('正在插入用户数据...');
$this->call(UserSeeder::class);
// 4. 创建角色权限关联数据
$this->command->info('正在插入角色权限关联数据...');
$this->call(RolePermissionSeeder::class);
// 5. 创建用户角色关联数据
$this->command->info('正在插入用户角色关联数据...');
$this->call(UserRoleSeeder::class);
$this->command->info('所有种子数据执行完成!');
}
/**
* 调用指定的种子类
*/
private function call(string $seederClass): void
{
if (class_exists($seederClass)) {
$seeder = new $seederClass();
$seeder->setCommand($this->command);
$seeder->run();
} else {
$this->command->error("种子类不存在: {$seederClass}");
}
}
}