修复:Presence Channel 认证数据补全头像和VIP信息

- 修复 channels.php 中 headface 字段使用 accessor 正确读取 usersf
- 补全 VIP 图标、名称、颜色和管理员标识到频道认证数据
- 解决刷新页面后头像和VIP标识丢失的问题
This commit is contained in:
2026-02-26 22:03:03 +08:00
parent 8c55c24a07
commit 362ecdd8ab

View File

@@ -12,12 +12,17 @@ Broadcast::channel('room.{roomId}', function ($user, $roomId) {
// 凡是通过了这个判断的人(返回一个数组),他就会成功建立 WebSocket
// 且他的这个数组信息会被 Reverb 推送给这个房间内的所有其他人 (joining / here 事件)。
$superLevel = (int) \App\Models\Sysparam::getValue('superlevel', '100');
return [
'id' => $user->id,
'username' => $user->username,
'user_level' => $user->user_level,
'sex' => $user->sex,
'headface' => $user->usersf ?: $user->headface,
// 这里可以视情况加入更多需要前端渲染在线人员列表的字段
'headface' => $user->headface, // 通过 accessor 读取 usersf默认 1.GIF
'vip_icon' => $user->vipIcon(),
'vip_name' => $user->vipName(),
'vip_color' => $user->isVip() ? ($user->vipLevel?->color ?? '') : '',
'is_admin' => $user->user_level >= $superLevel,
];
});