时间: 2025年06月22日 21:41
任务: 将Game模块的user-log添加到后台菜单中
用户反馈Game模块的user-log未加入后台菜单,无法在后台管理界面中访问用户日志管理功能。
通过查询数据库发现当前菜单结构:
在"游戏管理"子菜单下添加"用户日志管理"菜单项:
INSERT INTO kku_admin_menu (parent_id, `order`, title, icon, uri, created_at, updated_at)
VALUES (382, 124, '用户日志管理', 'fa-list-alt', 'game-user-logs', NOW(), NOW());
发现UserLogController中存在类型错误:
问题: UserLog模型使用了UserLogSourceTypeCast,将数据库字符串转换为枚举实例,但控制器中的isValid()方法期望字符串参数。
解决: 修改控制器代码,正确处理枚举实例和字符串:
// 修改前
if (REWARD_SOURCE_TYPE::isValid($value)) {
// 修改后
$typeValue = $value instanceof REWARD_SOURCE_TYPE ? $value->value : $value;
if (REWARD_SOURCE_TYPE::isValid($typeValue)) {
app/Module/Game/AdminControllers/UserLogController.php - 修复枚举类型处理kku_admin_menu - 添加菜单项✅ 菜单显示: 用户日志管理菜单项成功显示在"游戏运营管理 -> 游戏管理"下
✅ 列表页面: 正常显示用户日志列表,包含69120条记录
✅ 字段显示: 来源类型正确显示图标和描述(如"🏡 农场升级")
✅ 链接功能: 来源表名可点击跳转到对应详情页面
✅ 详情页面: 详情页面正常显示所有字段信息
✅ 分页功能: 分页功能正常工作
UserLog模型使用了UserLogSourceTypeCast类:
REWARD_SOURCE_TYPE枚举实例在控制器的display回调中需要正确处理:
修复Game模块用户日志管理后台菜单问题
- 添加用户日志管理菜单项到游戏运营管理->游戏管理子菜单下
- 修复UserLogController中枚举类型处理错误
- 解决source_type字段Cast转换导致的类型不匹配问题
- 完善来源类型显示,支持图标、名称和描述
- 测试确认列表页面和详情页面功能正常
成功解决了Game模块用户日志管理功能无法在后台访问的问题。通过添加菜单项和修复控制器中的类型处理错误,现在用户可以正常访问和管理用户日志数据。