userId = $userPublic->user_id; $dto->avatar = $userPublic->avatar; $dto->status = $userPublic->status; $dto->nickName = $userPublic->nick_name; return $dto; } /** * 从 UserInfo 模型创建 DTO * * @param UserInfo $userInfo 用户详细信息模型 * @return self */ public static function fromUserInfo(UserInfo $userInfo): self { $dto = new self(); $dto->userId = $userInfo->user_id; $dto->avatar = $userInfo->avatar; $dto->status = $userInfo->status->value; $dto->nickName = $userInfo->nickname; return $dto; } /** * 创建已注销用户的 DTO * * @param int $userId 用户ID * @return self */ public static function createDeleted(int $userId): self { $dto = new self(); $dto->userId = $userId; $dto->avatar = ''; $dto->status = 0; $dto->nickName = '已注销'; return $dto; } /** * 转换为数组 * * @return array */ public function toArray(): array { return [ 'user_id' => $this->userId, 'avatar' => $this->avatar, 'status' => $this->status, 'nick_name' => $this->nickName, ]; } }