diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php index 2da41cc..607c7bd 100644 --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/UserController.php @@ -67,16 +67,24 @@ class UserController extends Controller $data['last_ip'] = $targetUser->last_ip; $data['login_ip'] = $targetUser->login_ip; // 假设表中存在 login_ip 记录本次IP,若无则使用 last_ip 退化 - // 解析归属地 + // 解析归属地 (防崩溃处理:检查服务提供者是否已安装) $ipToLookup = $targetUser->login_ip ?: $targetUser->last_ip; if ($ipToLookup) { - $position = Location::get($ipToLookup); - if ($position) { - $data['location'] = ($position->countryName === 'China' || $position->countryName === 'Local') ? - ($position->regionName ?? '').' '.($position->cityName ?? '') : - $position->countryName; + if (class_exists('\Stevebauman\Location\Facades\Location')) { + try { + $position = Location::get($ipToLookup); + if ($position) { + $data['location'] = ($position->countryName === 'China' || $position->countryName === 'Local') ? + ($position->regionName ?? '') . ' ' . ($position->cityName ?? '') : + $position->countryName; + } else { + $data['location'] = '未知区域'; + } + } catch (\Exception $e) { + $data['location'] = '解析失败'; + } } else { - $data['location'] = '未知区域'; + $data['location'] = 'IP解析库未安装'; } } else { $data['location'] = '暂无记录';