id = $itemUser->id; $dto->userId = $itemUser->user_id; $dto->itemId = $itemUser->item_id; $dto->itemName = $itemUser->item->name ?? null; $dto->itemType = $itemUser->item->type->value ?? null; $dto->itemTypeName = $itemUser->item->type ? \App\Module\GameItems\Enums\ITEM_TYPE::getName($itemUser->item->type->value) : null; $dto->instanceId = $itemUser->instance_id; $dto->quantity = $itemUser->quantity; $dto->expireAt = $itemUser->expire_at ? $itemUser->expire_at->format('Y-m-d H:i:s') : null; $dto->isFrozen = $itemUser->is_frozen; $dto->createdAt = $itemUser->created_at->format('Y-m-d H:i:s'); $dto->updatedAt = $itemUser->updated_at->format('Y-m-d H:i:s'); // 如果需要包含物品信息 if ($includeItem && $itemUser->item) { $dto->item = ItemDto::fromModel($itemUser->item); } else { $dto->item = null; } return $dto; } /** * 转换为数组 * * @return array */ public function toArray(): array { return [ 'id' => $this->id, 'user_id' => $this->userId, 'item_id' => $this->itemId, 'item_name' => $this->itemName, 'item_type' => $this->itemType, 'item_type_name' => $this->itemTypeName, 'instance_id' => $this->instanceId, 'quantity' => $this->quantity, 'expire_at' => $this->expireAt, 'is_frozen' => $this->isFrozen, 'item' => $this->item ? $this->item->toArray() : null, 'created_at' => $this->createdAt, 'updated_at' => $this->updatedAt, ]; } }