avatar) { return null; } // 如果是微信完整链接(http或https开头),直接返回 if (preg_match('/^https?:\/\//', $this->avatar)) { return $this->avatar; } // 否则拼接下载路径 return "/api/download?filename={$this->avatar}&bucket=user-avatar"; } /** * 获取生活照片完整URL数组 */ public function getLifePhotosUrlAttribute(): ?array { if (!$this->life_photos) { return null; } $photos = is_string($this->life_photos) ? json_decode($this->life_photos, true) : $this->life_photos; return array_map(function ($photo) { return "/api/download?filename={$photo}&bucket=user-avatar"; }, $photos); } /** * 关联技师用户 */ public function coach() { return $this->belongsTo(CoachUser::class, 'coach_id', 'id'); } /** * 关联用户 */ public function user() { return $this->belongsTo(MemberUser::class, 'user_id', 'id'); } }