mirror of
https://devops.lemonos.cn/lawson/FendxPHP.git
synced 2026-06-15 23:12:49 +08:00
60 lines
1.7 KiB
PHP
60 lines
1.7 KiB
PHP
|
|
<?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}");
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|