mirror of
https://devops.lemonos.cn/lawson/FendxPHP.git
synced 2026-06-15 23:12:49 +08:00
feat(database): 添加用户角色权限系统及相关监控功能
- 创建用户表(users)包含基本信息和认证字段 - 创建角色表(roles)用于权限控制 - 创建权限表(permissions)定义系统权限 - 创建用户角色关联表(user_roles)建立用户与角色关系 - 创建角色权限关联表(role_permissions)建立角色与权限关系 - 创建迁移记录表(migrations)追踪数据库变更 - 添加AdminController提供管理员面板功能 - 实现系统监控、配置管理、缓存清理等功能 - 添加AOP切面编程支持的各种通知类型 - 实现告警管理AlertManager支持多渠道告警 - 添加文档注解接口规范
This commit is contained in:
59
database/seeds/DatabaseSeeder.php
Normal file
59
database/seeds/DatabaseSeeder.php
Normal file
@@ -0,0 +1,59 @@
|
||||
<?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}");
|
||||
}
|
||||
}
|
||||
}
|
||||
72
database/seeds/PermissionSeeder.php
Normal file
72
database/seeds/PermissionSeeder.php
Normal file
@@ -0,0 +1,72 @@
|
||||
<?php
|
||||
declare(strict_types=1);
|
||||
|
||||
use Fendx\Database\Seeder\Seeder;
|
||||
use Fendx\Database\Connection\DB;
|
||||
|
||||
/**
|
||||
* 权限种子数据
|
||||
*/
|
||||
class PermissionSeeder extends Seeder
|
||||
{
|
||||
public function run(): void
|
||||
{
|
||||
$permissions = [
|
||||
// 用户管理权限
|
||||
['name' => 'user.list', 'display_name' => '查看用户列表', 'group_name' => '用户管理', 'sort_order' => 1],
|
||||
['name' => 'user.create', 'display_name' => '创建用户', 'group_name' => '用户管理', 'sort_order' => 2],
|
||||
['name' => 'user.edit', 'display_name' => '编辑用户', 'group_name' => '用户管理', 'sort_order' => 3],
|
||||
['name' => 'user.delete', 'display_name' => '删除用户', 'group_name' => '用户管理', 'sort_order' => 4],
|
||||
['name' => 'user.view', 'display_name' => '查看用户详情', 'group_name' => '用户管理', 'sort_order' => 5],
|
||||
|
||||
// 角色管理权限
|
||||
['name' => 'role.list', 'display_name' => '查看角色列表', 'group_name' => '角色管理', 'sort_order' => 1],
|
||||
['name' => 'role.create', 'display_name' => '创建角色', 'group_name' => '角色管理', 'sort_order' => 2],
|
||||
['name' => 'role.edit', 'display_name' => '编辑角色', 'group_name' => '角色管理', 'sort_order' => 3],
|
||||
['name' => 'role.delete', 'display_name' => '删除角色', 'group_name' => '角色管理', 'sort_order' => 4],
|
||||
['name' => 'role.assign', 'display_name' => '分配角色', 'group_name' => '角色管理', 'sort_order' => 5],
|
||||
|
||||
// 权限管理权限
|
||||
['name' => 'permission.list', 'display_name' => '查看权限列表', 'group_name' => '权限管理', 'sort_order' => 1],
|
||||
['name' => 'permission.create', 'display_name' => '创建权限', 'group_name' => '权限管理', 'sort_order' => 2],
|
||||
['name' => 'permission.edit', 'display_name' => '编辑权限', 'group_name' => '权限管理', 'sort_order' => 3],
|
||||
['name' => 'permission.delete', 'display_name' => '删除权限', 'group_name' => '权限管理', 'sort_order' => 4],
|
||||
|
||||
// 内容管理权限
|
||||
['name' => 'content.list', 'display_name' => '查看内容列表', 'group_name' => '内容管理', 'sort_order' => 1],
|
||||
['name' => 'content.create', 'display_name' => '创建内容', 'group_name' => '内容管理', 'sort_order' => 2],
|
||||
['name' => 'content.edit', 'display_name' => '编辑内容', 'group_name' => '内容管理', 'sort_order' => 3],
|
||||
['name' => 'content.delete', 'display_name' => '删除内容', 'group_name' => '内容管理', 'sort_order' => 4],
|
||||
['name' => 'content.publish', 'display_name' => '发布内容', 'group_name' => '内容管理', 'sort_order' => 5],
|
||||
['name' => 'content.audit', 'display_name' => '审核内容', 'group_name' => '内容管理', 'sort_order' => 6],
|
||||
|
||||
// 系统管理权限
|
||||
['name' => 'system.config', 'display_name' => '系统配置', 'group_name' => '系统管理', 'sort_order' => 1],
|
||||
['name' => 'system.log', 'display_name' => '查看系统日志', 'group_name' => '系统管理', 'sort_order' => 2],
|
||||
['name' => 'system.monitor', 'display_name' => '系统监控', 'group_name' => '系统管理', 'sort_order' => 3],
|
||||
['name' => 'system.backup', 'display_name' => '数据备份', 'group_name' => '系统管理', 'sort_order' => 4],
|
||||
['name' => 'system.restore', 'display_name' => '数据恢复', 'group_name' => '系统管理', 'sort_order' => 5],
|
||||
|
||||
// API权限
|
||||
['name' => 'api.access', 'display_name' => 'API访问', 'group_name' => 'API管理', 'sort_order' => 1],
|
||||
['name' => 'api.create', 'display_name' => 'API创建', 'group_name' => 'API管理', 'sort_order' => 2],
|
||||
['name' => 'api.update', 'display_name' => 'API更新', 'group_name' => 'API管理', 'sort_order' => 3],
|
||||
['name' => 'api.delete', 'display_name' => 'API删除', 'group_name' => 'API管理', 'sort_order' => 4],
|
||||
];
|
||||
|
||||
foreach ($permissions as $permission) {
|
||||
DB::table('permissions')->insert([
|
||||
'name' => $permission['name'],
|
||||
'display_name' => $permission['display_name'],
|
||||
'group_name' => $permission['group_name'],
|
||||
'guard_name' => 'web',
|
||||
'is_active' => true,
|
||||
'sort_order' => $permission['sort_order'],
|
||||
'created_at' => date('Y-m-d H:i:s'),
|
||||
'updated_at' => date('Y-m-d H:i:s'),
|
||||
]);
|
||||
}
|
||||
|
||||
$this->command->info('权限种子数据插入完成');
|
||||
}
|
||||
}
|
||||
121
database/seeds/RolePermissionSeeder.php
Normal file
121
database/seeds/RolePermissionSeeder.php
Normal file
@@ -0,0 +1,121 @@
|
||||
<?php
|
||||
declare(strict_types=1);
|
||||
|
||||
use Fendx\Database\Seeder\Seeder;
|
||||
use Fendx\Database\Connection\DB;
|
||||
|
||||
/**
|
||||
* 角色权限关联种子数据
|
||||
*/
|
||||
class RolePermissionSeeder extends Seeder
|
||||
{
|
||||
public function run(): void
|
||||
{
|
||||
// 获取角色和权限ID
|
||||
$roles = DB::table('roles')->pluck('id', 'name')->toArray();
|
||||
$permissions = DB::table('permissions')->pluck('id', 'name')->toArray();
|
||||
|
||||
$rolePermissions = [];
|
||||
|
||||
// 超级管理员拥有所有权限
|
||||
if (isset($roles['super_admin'])) {
|
||||
foreach ($permissions as $permissionId) {
|
||||
$rolePermissions[] = [
|
||||
'role_id' => $roles['super_admin'],
|
||||
'permission_id' => $permissionId,
|
||||
'guard_name' => 'web',
|
||||
'created_at' => date('Y-m-d H:i:s'),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
// 管理员权限(除了系统管理中的敏感权限)
|
||||
if (isset($roles['admin'])) {
|
||||
$adminPermissions = [
|
||||
'user.list', 'user.create', 'user.edit', 'user.view',
|
||||
'role.list', 'role.create', 'role.edit', 'role.assign',
|
||||
'permission.list', 'permission.edit',
|
||||
'content.list', 'content.create', 'content.edit', 'content.publish', 'content.audit',
|
||||
'system.log', 'system.monitor',
|
||||
'api.access', 'api.create', 'api.update',
|
||||
];
|
||||
|
||||
foreach ($adminPermissions as $permissionName) {
|
||||
if (isset($permissions[$permissionName])) {
|
||||
$rolePermissions[] = [
|
||||
'role_id' => $roles['admin'],
|
||||
'permission_id' => $permissions[$permissionName],
|
||||
'guard_name' => 'web',
|
||||
'created_at' => date('Y-m-d H:i:s'),
|
||||
];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 版主权限(内容管理相关)
|
||||
if (isset($roles['moderator'])) {
|
||||
$moderatorPermissions = [
|
||||
'user.list', 'user.view',
|
||||
'content.list', 'content.create', 'content.edit', 'content.audit',
|
||||
'api.access',
|
||||
];
|
||||
|
||||
foreach ($moderatorPermissions as $permissionName) {
|
||||
if (isset($permissions[$permissionName])) {
|
||||
$rolePermissions[] = [
|
||||
'role_id' => $roles['moderator'],
|
||||
'permission_id' => $permissions[$permissionName],
|
||||
'guard_name' => 'web',
|
||||
'created_at' => date('Y-m-d H:i:s'),
|
||||
];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 普通用户权限(基础权限)
|
||||
if (isset($roles['user'])) {
|
||||
$userPermissions = [
|
||||
'user.view', // 查看自己的信息
|
||||
'content.list', 'content.create', 'content.edit', // 内容管理
|
||||
'api.access', // API访问
|
||||
];
|
||||
|
||||
foreach ($userPermissions as $permissionName) {
|
||||
if (isset($permissions[$permissionName])) {
|
||||
$rolePermissions[] = [
|
||||
'role_id' => $roles['user'],
|
||||
'permission_id' => $permissions[$permissionName],
|
||||
'guard_name' => 'web',
|
||||
'created_at' => date('Y-m-d H:i:s'),
|
||||
];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 访客权限(最基础的权限)
|
||||
if (isset($roles['guest'])) {
|
||||
$guestPermissions = [
|
||||
'content.list', // 查看公开内容
|
||||
'api.access', // 基础API访问
|
||||
];
|
||||
|
||||
foreach ($guestPermissions as $permissionName) {
|
||||
if (isset($permissions[$permissionName])) {
|
||||
$rolePermissions[] = [
|
||||
'role_id' => $roles['guest'],
|
||||
'permission_id' => $permissions[$permissionName],
|
||||
'guard_name' => 'web',
|
||||
'created_at' => date('Y-m-d H:i:s'),
|
||||
];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 批量插入角色权限关联
|
||||
if (!empty($rolePermissions)) {
|
||||
DB::table('role_permissions')->insert($rolePermissions);
|
||||
}
|
||||
|
||||
$this->command->info('角色权限关联种子数据插入完成');
|
||||
}
|
||||
}
|
||||
73
database/seeds/RoleSeeder.php
Normal file
73
database/seeds/RoleSeeder.php
Normal file
@@ -0,0 +1,73 @@
|
||||
<?php
|
||||
declare(strict_types=1);
|
||||
|
||||
use Fendx\Database\Seeder\Seeder;
|
||||
use Fendx\Database\Connection\DB;
|
||||
|
||||
/**
|
||||
* 角色种子数据
|
||||
*/
|
||||
class RoleSeeder extends Seeder
|
||||
{
|
||||
public function run(): void
|
||||
{
|
||||
$roles = [
|
||||
[
|
||||
'name' => 'super_admin',
|
||||
'display_name' => '超级管理员',
|
||||
'description' => '系统超级管理员,拥有所有权限',
|
||||
'guard_name' => 'web',
|
||||
'is_active' => true,
|
||||
'sort_order' => 1,
|
||||
'created_at' => date('Y-m-d H:i:s'),
|
||||
'updated_at' => date('Y-m-d H:i:s'),
|
||||
],
|
||||
[
|
||||
'name' => 'admin',
|
||||
'display_name' => '管理员',
|
||||
'description' => '系统管理员,拥有大部分管理权限',
|
||||
'guard_name' => 'web',
|
||||
'is_active' => true,
|
||||
'sort_order' => 2,
|
||||
'created_at' => date('Y-m-d H:i:s'),
|
||||
'updated_at' => date('Y-m-d H:i:s'),
|
||||
],
|
||||
[
|
||||
'name' => 'moderator',
|
||||
'display_name' => '版主',
|
||||
'description' => '内容管理员,负责内容审核和管理',
|
||||
'guard_name' => 'web',
|
||||
'is_active' => true,
|
||||
'sort_order' => 3,
|
||||
'created_at' => date('Y-m-d H:i:s'),
|
||||
'updated_at' => date('Y-m-d H:i:s'),
|
||||
],
|
||||
[
|
||||
'name' => 'user',
|
||||
'display_name' => '普通用户',
|
||||
'description' => '普通注册用户',
|
||||
'guard_name' => 'web',
|
||||
'is_active' => true,
|
||||
'sort_order' => 4,
|
||||
'created_at' => date('Y-m-d H:i:s'),
|
||||
'updated_at' => date('Y-m-d H:i:s'),
|
||||
],
|
||||
[
|
||||
'name' => 'guest',
|
||||
'display_name' => '访客',
|
||||
'description' => '未登录访客',
|
||||
'guard_name' => 'web',
|
||||
'is_active' => true,
|
||||
'sort_order' => 5,
|
||||
'created_at' => date('Y-m-d H:i:s'),
|
||||
'updated_at' => date('Y-m-d H:i:s'),
|
||||
],
|
||||
];
|
||||
|
||||
foreach ($roles as $role) {
|
||||
DB::table('roles')->insert($role);
|
||||
}
|
||||
|
||||
$this->command->info('角色种子数据插入完成');
|
||||
}
|
||||
}
|
||||
87
database/seeds/UserRoleSeeder.php
Normal file
87
database/seeds/UserRoleSeeder.php
Normal file
@@ -0,0 +1,87 @@
|
||||
<?php
|
||||
declare(strict_types=1);
|
||||
|
||||
use Fendx\Database\Seeder\Seeder;
|
||||
use Fendx\Database\Connection\DB;
|
||||
|
||||
/**
|
||||
* 用户角色关联种子数据
|
||||
*/
|
||||
class UserRoleSeeder extends Seeder
|
||||
{
|
||||
public function run(): void
|
||||
{
|
||||
// 获取用户和角色ID
|
||||
$users = DB::table('users')->pluck('id', 'username')->toArray();
|
||||
$roles = DB::table('roles')->pluck('id', 'name')->toArray();
|
||||
|
||||
$userRoles = [];
|
||||
|
||||
// admin 用户 -> 超级管理员
|
||||
if (isset($users['admin']) && isset($roles['super_admin'])) {
|
||||
$userRoles[] = [
|
||||
'user_id' => $users['admin'],
|
||||
'role_id' => $roles['super_admin'],
|
||||
'guard_name' => 'web',
|
||||
'created_at' => date('Y-m-d H:i:s'),
|
||||
];
|
||||
}
|
||||
|
||||
// test_user 用户 -> 普通用户
|
||||
if (isset($users['test_user']) && isset($roles['user'])) {
|
||||
$userRoles[] = [
|
||||
'user_id' => $users['test_user'],
|
||||
'role_id' => $roles['user'],
|
||||
'guard_name' => 'web',
|
||||
'created_at' => date('Y-m-d H:i:s'),
|
||||
];
|
||||
}
|
||||
|
||||
// developer 用户 -> 管理员
|
||||
if (isset($users['developer']) && isset($roles['admin'])) {
|
||||
$userRoles[] = [
|
||||
'user_id' => $users['developer'],
|
||||
'role_id' => $roles['admin'],
|
||||
'guard_name' => 'web',
|
||||
'created_at' => date('Y-m-d H:i:s'),
|
||||
];
|
||||
}
|
||||
|
||||
// moderator 用户 -> 版主
|
||||
if (isset($users['moderator']) && isset($roles['moderator'])) {
|
||||
$userRoles[] = [
|
||||
'user_id' => $users['moderator'],
|
||||
'role_id' => $roles['moderator'],
|
||||
'guard_name' => 'web',
|
||||
'created_at' => date('Y-m-d H:i:s'),
|
||||
];
|
||||
}
|
||||
|
||||
// user001 用户 -> 普通用户
|
||||
if (isset($users['user001']) && isset($roles['user'])) {
|
||||
$userRoles[] = [
|
||||
'user_id' => $users['user001'],
|
||||
'role_id' => $roles['user'],
|
||||
'guard_name' => 'web',
|
||||
'created_at' => date('Y-m-d H:i:s'),
|
||||
];
|
||||
}
|
||||
|
||||
// user002 用户 -> 普通用户
|
||||
if (isset($users['user002']) && isset($roles['user'])) {
|
||||
$userRoles[] = [
|
||||
'user_id' => $users['user002'],
|
||||
'role_id' => $roles['user'],
|
||||
'guard_name' => 'web',
|
||||
'created_at' => date('Y-m-d H:i:s'),
|
||||
];
|
||||
}
|
||||
|
||||
// 批量插入用户角色关联
|
||||
if (!empty($userRoles)) {
|
||||
DB::table('user_roles')->insert($userRoles);
|
||||
}
|
||||
|
||||
$this->command->info('用户角色关联种子数据插入完成');
|
||||
}
|
||||
}
|
||||
143
database/seeds/UserSeeder.php
Normal file
143
database/seeds/UserSeeder.php
Normal file
@@ -0,0 +1,143 @@
|
||||
<?php
|
||||
declare(strict_types=1);
|
||||
|
||||
use Fendx\Database\Seeder\Seeder;
|
||||
use Fendx\Database\Connection\DB;
|
||||
|
||||
/**
|
||||
* 用户种子数据
|
||||
*/
|
||||
class UserSeeder extends Seeder
|
||||
{
|
||||
public function run(): void
|
||||
{
|
||||
$users = [
|
||||
[
|
||||
'username' => 'admin',
|
||||
'email' => 'admin@fendx.com',
|
||||
'password' => password_hash('admin123', PASSWORD_DEFAULT),
|
||||
'nickname' => '系统管理员',
|
||||
'avatar' => null,
|
||||
'phone' => '13800138000',
|
||||
'gender' => 'other',
|
||||
'birthday' => null,
|
||||
'bio' => '系统默认管理员账号',
|
||||
'status' => 'active',
|
||||
'email_verified' => true,
|
||||
'phone_verified' => true,
|
||||
'email_verified_at' => date('Y-m-d H:i:s'),
|
||||
'phone_verified_at' => date('Y-m-d H:i:s'),
|
||||
'last_login_at' => date('Y-m-d H:i:s'),
|
||||
'last_login_ip' => '127.0.0.1',
|
||||
'created_at' => date('Y-m-d H:i:s'),
|
||||
'updated_at' => date('Y-m-d H:i:s'),
|
||||
],
|
||||
[
|
||||
'username' => 'test_user',
|
||||
'email' => 'test@fendx.com',
|
||||
'password' => password_hash('test123', PASSWORD_DEFAULT),
|
||||
'nickname' => '测试用户',
|
||||
'avatar' => null,
|
||||
'phone' => '13800138001',
|
||||
'gender' => 'male',
|
||||
'birthday' => '1990-01-01',
|
||||
'bio' => '这是一个测试用户账号',
|
||||
'status' => 'active',
|
||||
'email_verified' => true,
|
||||
'phone_verified' => false,
|
||||
'email_verified_at' => date('Y-m-d H:i:s'),
|
||||
'phone_verified_at' => null,
|
||||
'last_login_at' => date('Y-m-d H:i:s'),
|
||||
'last_login_ip' => '127.0.0.1',
|
||||
'created_at' => date('Y-m-d H:i:s'),
|
||||
'updated_at' => date('Y-m-d H:i:s'),
|
||||
],
|
||||
[
|
||||
'username' => 'developer',
|
||||
'email' => 'dev@fendx.com',
|
||||
'password' => password_hash('dev123', PASSWORD_DEFAULT),
|
||||
'nickname' => '开发者',
|
||||
'avatar' => null,
|
||||
'phone' => '13800138002',
|
||||
'gender' => 'male',
|
||||
'birthday' => '1985-05-15',
|
||||
'bio' => '系统开发者账号',
|
||||
'status' => 'active',
|
||||
'email_verified' => true,
|
||||
'phone_verified' => true,
|
||||
'email_verified_at' => date('Y-m-d H:i:s'),
|
||||
'phone_verified_at' => date('Y-m-d H:i:s'),
|
||||
'last_login_at' => date('Y-m-d H:i:s'),
|
||||
'last_login_ip' => '127.0.0.1',
|
||||
'created_at' => date('Y-m-d H:i:s'),
|
||||
'updated_at' => date('Y-m-d H:i:s'),
|
||||
],
|
||||
[
|
||||
'username' => 'moderator',
|
||||
'email' => 'mod@fendx.com',
|
||||
'password' => password_hash('mod123', PASSWORD_DEFAULT),
|
||||
'nickname' => '内容管理员',
|
||||
'avatar' => null,
|
||||
'phone' => '13800138003',
|
||||
'gender' => 'female',
|
||||
'birthday' => '1992-08-20',
|
||||
'bio' => '负责内容审核和管理的版主',
|
||||
'status' => 'active',
|
||||
'email_verified' => true,
|
||||
'phone_verified' => false,
|
||||
'email_verified_at' => date('Y-m-d H:i:s'),
|
||||
'phone_verified_at' => null,
|
||||
'last_login_at' => date('Y-m-d H:i:s'),
|
||||
'last_login_ip' => '127.0.0.1',
|
||||
'created_at' => date('Y-m-d H:i:s'),
|
||||
'updated_at' => date('Y-m-d H:i:s'),
|
||||
],
|
||||
[
|
||||
'username' => 'user001',
|
||||
'email' => 'user001@fendx.com',
|
||||
'password' => password_hash('user123', PASSWORD_DEFAULT),
|
||||
'nickname' => '普通用户1',
|
||||
'avatar' => null,
|
||||
'phone' => '13800138004',
|
||||
'gender' => 'male',
|
||||
'birthday' => '1995-03-10',
|
||||
'bio' => '普通注册用户',
|
||||
'status' => 'active',
|
||||
'email_verified' => true,
|
||||
'phone_verified' => false,
|
||||
'email_verified_at' => date('Y-m-d H:i:s'),
|
||||
'phone_verified_at' => null,
|
||||
'last_login_at' => date('Y-m-d H:i:s'),
|
||||
'last_login_ip' => '127.0.0.1',
|
||||
'created_at' => date('Y-m-d H:i:s'),
|
||||
'updated_at' => date('Y-m-d H:i:s'),
|
||||
],
|
||||
[
|
||||
'username' => 'user002',
|
||||
'email' => 'user002@fendx.com',
|
||||
'password' => password_hash('user123', PASSWORD_DEFAULT),
|
||||
'nickname' => '普通用户2',
|
||||
'avatar' => null,
|
||||
'phone' => '13800138005',
|
||||
'gender' => 'female',
|
||||
'birthday' => '1993-11-25',
|
||||
'bio' => '普通注册用户',
|
||||
'status' => 'active',
|
||||
'email_verified' => true,
|
||||
'phone_verified' => false,
|
||||
'email_verified_at' => date('Y-m-d H:i:s'),
|
||||
'phone_verified_at' => null,
|
||||
'last_login_at' => date('Y-m-d H:i:s'),
|
||||
'last_login_ip' => '127.0.0.1',
|
||||
'created_at' => date('Y-m-d H:i:s'),
|
||||
'updated_at' => date('Y-m-d H:i:s'),
|
||||
],
|
||||
];
|
||||
|
||||
foreach ($users as $user) {
|
||||
DB::table('users')->insert($user);
|
||||
}
|
||||
|
||||
$this->command->info('用户种子数据插入完成');
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user