Fix: 防止生产环境未运行 composer install 导致 Location facade 找不到引发 500 错误

This commit is contained in:
2026-02-27 11:44:28 +08:00
parent 5504243bbb
commit d73dda6cd2

View File

@@ -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'] = '暂无记录';