portrait_images) { return null; } $images = is_string($this->portrait_images) ? json_decode($this->portrait_images, true) : $this->portrait_images; return array_map(function ($image) { return "/api/download?filename={$image}&bucket=user-avatar"; }, $images); } /** * 获取身份证照片完整URL */ public function getIdCardImagesUrlAttribute(): ?array { if (!$this->id_card_images) { return null; } $images = is_string($this->id_card_images) ? json_decode($this->id_card_images, true) : $this->id_card_images; return array_map(function ($image) { return "/api/download?filename={$image}&bucket=user-avatar"; }, $images); } /** * 获取从业资格证完整URL */ public function getQualPhotoUrlAttribute(): ?array { if (!$this->qual_photo) { return null; } $images = is_string($this->qual_photo) ? json_decode($this->qual_photo, true) : $this->qual_photo; return array_map(function ($image) { return "/api/download?filename={$image}&bucket=user-avatar"; }, $images); } /** * 获取营业执照完整URL */ public function getBusinessLicenseUrlAttribute(): ?array { if (!$this->business_license) { return null; } $images = is_string($this->business_license) ? json_decode($this->business_license, true) : $this->business_license; return array_map(function ($image) { return "/api/download?filename={$image}&bucket=user-avatar"; }, $images); } /** * 获取健康证完整URL */ public function getHealthCertificateUrlAttribute(): ?array { if (!$this->health_certificate) { return null; } $images = is_string($this->health_certificate) ? json_decode($this->health_certificate, true) : $this->health_certificate; return array_map(function ($image) { return "/api/download?filename={$image}&bucket=user-avatar"; }, $images); } /** * 获取头像完整URL */ public function getAvatarUrlAttribute(): ?string { return $this->avatar ? "/api/download?filename={$this->avatar}&bucket=user-avatar" : null; } /** * 关联技师用户 */ public function coach() { return $this->belongsTo(CoachUser::class, 'coach_id', 'id'); } }