实现后台用户日志管理页面中"来源表名"列的可点击功能,点击后能够跳转到对应来源记录的详情页面。
在app/Module/Game/AdminControllers/UserLogController.php中:
$grid->column('source_table', '来源表名')
->limit(20)
->display(function ($value) {
if (!$value || !$this->source_id) {
return $value;
}
// 获取对应的后台管理页面URL
$url = self::getSourceDetailUrl($value, $this->source_id);
if ($url) {
return "<a href=\"{$url}\" target=\"_blank\" class=\"text-primary\" title=\"查看来源详情\">" .
"<i class=\"fa fa-external-link\"></i> {$value}</a>";
}
return $value;
});
/**
* 获取来源详情页面URL
*
* @param string $sourceTable 来源表名
* @param int $sourceId 来源记录ID
* @return string|null 详情页面URL,null表示无对应页面
*/
public static function getSourceDetailUrl(string $sourceTable, int $sourceId): ?string
{
// 来源表名到后台路由的映射关系
$tableRouteMap = [
'fund_logs' => 'fund-logs',
'item_transaction_logs' => 'game-items-transaction-logs',
'farm_harvest_logs' => 'farm-harvest-logs',
'farm_upgrade_logs' => 'farm-upgrade-logs',
'pet_battle_logs' => 'pet-battle-logs',
'pet_skill_logs' => 'pet-skill-logs',
'task_reward_logs' => 'task-reward-logs',
'task_reset_logs' => 'task-reset-logs',
'game_items_dismantle_logs' => 'game-items-dismantle-logs',
'system_logs' => 'system-logs',
];
// 检查是否有对应的路由
if (!isset($tableRouteMap[$sourceTable])) {
return null;
}
$route = $tableRouteMap[$sourceTable];
// 生成详情页面URL
return admin_url("{$route}/{$sourceId}");
}
cf906f95成功实现了用户日志管理页面来源表名列的可点击跳转功能,提升了后台管理的用户体验。通过建立表名到路由的映射关系,实现了灵活的跳转机制,便于运营人员快速查看日志来源的详细信息。