PHP Package: spatie/laravel-data
Spatie's Laravel Data library offering powerful data handling capabilities for Laravel applications, ensuring seamless data manipulation, validation, and transformation.
Current Version: 4.17.1
Last Updated: 2025-09-04
PHP Requirement: ^8.1
⚠️ To ensure full functionality, the above dependencies might be required.
Package Description
Spatie's Laravel Data library provides robust features for efficient data management in Laravel projects. It encompasses a wide array of functions including data validation, transformation, and manipulation, enhancing the overall data handling experience for developers.
Classes:
- Spatie\LaravelData\Resource
- Spatie\LaravelData\Transformers\SerializeTransformer
- Spatie\LaravelData\Transformers\ArrayableTransformer
- Spatie\LaravelData\Transformers\Transformer
- Spatie\LaravelData\Transformers\DateTimeInterfaceTransformer
- Spatie\LaravelData\Transformers\EnumTransformer
- Spatie\LaravelData\PaginatedDataCollection
- Spatie\LaravelData\Contracts\DeprecatedData
- Spatie\LaravelData\Contracts\PropertyMorphableData
- Spatie\LaravelData\Contracts\EmptyData
- Spatie\LaravelData\Contracts\AppendableData
- Spatie\LaravelData\Contracts\BaseData
- Spatie\LaravelData\Contracts\BaseDataCollectable
- Spatie\LaravelData\Contracts\ContextableData
- Spatie\LaravelData\Contracts\TransformableData
- Spatie\LaravelData\Contracts\ValidateableData
- Spatie\LaravelData\Contracts\WrappableData
- Spatie\LaravelData\Contracts\ResponsableData
- Spatie\LaravelData\Contracts\IncludeableData
- Spatie\LaravelData\Support\Partials\Partial
- Spatie\LaravelData\Support\Partials\PartialsDefinition
- Spatie\LaravelData\Support\Partials\PartialsCollection
- Spatie\LaravelData\Support\Partials\ForwardsToPartialsDefinition
- Spatie\LaravelData\Support\Partials\Segments\PartialSegment
- Spatie\LaravelData\Support\Partials\Segments\NestedPartialSegment
- Spatie\LaravelData\Support\Partials\Segments\AllPartialSegment
- Spatie\LaravelData\Support\Partials\Segments\FieldsPartialSegment
- Spatie\LaravelData\Support\DataAttributesCollection
- Spatie\LaravelData\Support\TypeScriptTransformer\DataTypeScriptTransformer
- Spatie\LaravelData\Support\TypeScriptTransformer\DataTypeScriptCollector
- Spatie\LaravelData\Support\TypeScriptTransformer\RemoveOptionalTypeProcessor
- Spatie\LaravelData\Support\TypeScriptTransformer\RemoveLazyTypeProcessor
- Spatie\LaravelData\Support\DataConfig
- Spatie\LaravelData\Support\VarDumper\DataVarDumperCaster
- Spatie\LaravelData\Support\VarDumper\VarDumperManager
- Spatie\LaravelData\Support\DataPropertyType
- Spatie\LaravelData\Support\DataCollectionAnnotationReader
- Spatie\LaravelData\Support\DataParameter
- Spatie\LaravelData\Support\LazyDataStructureProperty
- Spatie\LaravelData\Support\ResolvedDataPipeline
- Spatie\LaravelData\Support\Caching\DataStructureCache
- Spatie\LaravelData\Support\Caching\CachedDataConfig
- Spatie\LaravelData\Support\Caching\DataClassFinder
- Spatie\LaravelData\Support\DataStructureProperty
- Spatie\LaravelData\Support\DataType
- Spatie\LaravelData\Support\Validation\References\ExternalReference
- Spatie\LaravelData\Support\Validation\References\FieldReference
- Spatie\LaravelData\Support\Validation\References\RouteParameterReference
- Spatie\LaravelData\Support\Validation\References\AuthenticatedUserReference
- Spatie\LaravelData\Support\Validation\References\ContainerReference
- Spatie\LaravelData\Support\Validation\PropertyRules
- Spatie\LaravelData\Support\Validation\ValidationRuleFactory
- Spatie\LaravelData\Support\Validation\RuleNormalizer
- Spatie\LaravelData\Support\Validation\RequiringRule
- Spatie\LaravelData\Support\Validation\RuleDenormalizer
- Spatie\LaravelData\Support\Validation\ValidationContext
- Spatie\LaravelData\Support\Validation\ValidationRule
- Spatie\LaravelData\Support\Validation\DataRules
- Spatie\LaravelData\Support\Validation\EnsurePropertyMorphable
- Spatie\LaravelData\Support\Validation\ValidationPath
- Spatie\LaravelData\Support\Livewire\LivewireDataCollectionSynth
- Spatie\LaravelData\Support\Livewire\LivewireDataSynth
- Spatie\LaravelData\Support\DataMethod
- Spatie\LaravelData\Support\Wrapping\Wrap
- Spatie\LaravelData\Support\EloquentCasts\DataCollectionEloquentCast
- Spatie\LaravelData\Support\EloquentCasts\DataEloquentCast
- Spatie\LaravelData\Support\Lazy\LivewireLostLazy
- Spatie\LaravelData\Support\Lazy\InertiaLazy
- Spatie\LaravelData\Support\Lazy\InertiaDeferred
- Spatie\LaravelData\Support\Lazy\DefaultLazy
- Spatie\LaravelData\Support\Lazy\ClosureLazy
- Spatie\LaravelData\Support\Lazy\ConditionalLazy
- Spatie\LaravelData\Support\Lazy\RelationalLazy
- Spatie\LaravelData\Support\DataProperty
- Spatie\LaravelData\Support\Types\CombinationType
- Spatie\LaravelData\Support\Types\IntersectionType
- Spatie\LaravelData\Support\Types\NamedType
- Spatie\LaravelData\Support\Types\UnionType
- Spatie\LaravelData\Support\Types\Storage\AcceptedTypesStorage
- Spatie\LaravelData\Support\Types\Type
- Spatie\LaravelData\Support\Creation\GlobalCastsCollection
- Spatie\LaravelData\Support\Creation\CreationContextFactory
- Spatie\LaravelData\Support\Creation\CollectableMetaData
- Spatie\LaravelData\Support\Creation\CreationContext
- Spatie\LaravelData\Support\Annotations\CollectionAnnotationReader
- Spatie\LaravelData\Support\Annotations\DataIterableAnnotationReader
- Spatie\LaravelData\Support\Annotations\DataIterableAnnotation
- Spatie\LaravelData\Support\Annotations\CollectionAnnotation
- Spatie\LaravelData\Support\DataContainer
- Spatie\LaravelData\Support\DataClass
- Spatie\LaravelData\Support\Transformation\TransformationContext
- Spatie\LaravelData\Support\Transformation\GlobalTransformersCollection
- Spatie\LaravelData\Support\Transformation\TransformationContextFactory
- Spatie\LaravelData\Support\Transformation\DataContext
- Spatie\LaravelData\Support\DataClassMorphMap
- Spatie\LaravelData\Support\Factories\DataTypeFactory
- Spatie\LaravelData\Support\Factories\DataAttributesCollectionFactory
- Spatie\LaravelData\Support\Factories\DataParameterFactory
- Spatie\LaravelData\Support\Factories\DataPropertyFactory
- Spatie\LaravelData\Support\Factories\DataClassFactory
- Spatie\LaravelData\Support\Factories\DataMethodFactory
- Spatie\LaravelData\Support\Factories\DataReturnTypeFactory
- Spatie\LaravelData\Support\Skipped
- Spatie\LaravelData\RuleInferrers\RuleInferrer
- Spatie\LaravelData\RuleInferrers\BuiltInTypesRuleInferrer
- Spatie\LaravelData\RuleInferrers\RequiredRuleInferrer
- Spatie\LaravelData\RuleInferrers\SometimesRuleInferrer
- Spatie\LaravelData\RuleInferrers\NullableRuleInferrer
- Spatie\LaravelData\RuleInferrers\AttributesRuleInferrer
- Spatie\LaravelData\DataPipeline
- Spatie\LaravelData\LaravelDataServiceProvider
- Spatie\LaravelData\Dto
- Spatie\LaravelData\Mappers\SnakeCaseMapper
- Spatie\LaravelData\Mappers\LowerCaseMapper
- Spatie\LaravelData\Mappers\StudlyCaseMapper
- Spatie\LaravelData\Mappers\NameMapper
- Spatie\LaravelData\Mappers\CamelCaseMapper
- Spatie\LaravelData\Mappers\UpperCaseMapper
- Spatie\LaravelData\Mappers\ProvidedNameMapper
- Spatie\LaravelData\WithData
- Spatie\LaravelData\Data
- Spatie\LaravelData\Resolvers\DecoupledPartialResolver
- Spatie\LaravelData\Resolvers\DataCollectableFromSomethingResolver
- Spatie\LaravelData\Resolvers\DataValidationMessagesAndAttributesResolver
- Spatie\LaravelData\Resolvers\TransformedDataResolver
- Spatie\LaravelData\Resolvers\VisibleDataFieldsResolver
- Spatie\LaravelData\Resolvers\ContextResolver
- Spatie\LaravelData\Resolvers\ValidatedPayloadResolver
- Spatie\LaravelData\Resolvers\DataValidationRulesResolver
- Spatie\LaravelData\Resolvers\DataMorphClassResolver
- Spatie\LaravelData\Resolvers\DataFromSomethingResolver
- Spatie\LaravelData\Resolvers\RequestQueryStringPartialsResolver
- Spatie\LaravelData\Resolvers\EmptyDataResolver
- Spatie\LaravelData\Resolvers\NameMappersResolver
- Spatie\LaravelData\Resolvers\DataValidatorResolver
- Spatie\LaravelData\Resolvers\TransformedDataCollectableResolver
- Spatie\LaravelData\Resolvers\DataFromArrayResolver
- Spatie\LaravelData\Resolvers\Concerns\ChecksTransformationDepth
- Spatie\LaravelData\Lazy
- Spatie\LaravelData\Exceptions\CannotResolveRouteParameterReference
- Spatie\LaravelData\Exceptions\PaginatedCollectionIsAlwaysWrapped
- Spatie\LaravelData\Exceptions\CannotFindDataClass
- Spatie\LaravelData\Exceptions\CannotCreateDataCollectable
- Spatie\LaravelData\Exceptions\CannotCreateData
- Spatie\LaravelData\Exceptions\DataPropertyCanOnlyHaveOneType
- Spatie\LaravelData\Exceptions\InvalidDataCollectionOperation
- Spatie\LaravelData\Exceptions\CannotPerformPartialOnDataField
- Spatie\LaravelData\Exceptions\CannotFillFromRouteParameterPropertyUsingScalarValue
- Spatie\LaravelData\Exceptions\CouldNotCreateValidationRule
- Spatie\LaravelData\Exceptions\InvalidDataType
- Spatie\LaravelData\Exceptions\CannotCreateTransformerAttribute
- Spatie\LaravelData\Exceptions\InvalidDataClass
- Spatie\LaravelData\Exceptions\CannotCastEnum
- Spatie\LaravelData\Exceptions\CannotCreateCastAttribute
- Spatie\LaravelData\Exceptions\CannotCastDate
- Spatie\LaravelData\Exceptions\MaxTransformationDepthReached
- Spatie\LaravelData\Exceptions\CannotBuildValidationRule
- Spatie\LaravelData\Exceptions\CannotCastData
- Spatie\LaravelData\Exceptions\CannotSetComputedValue
- Spatie\LaravelData\Exceptions\CannotCreateAbstractClass
- Spatie\LaravelData\DataPipes\MapPropertiesDataPipe
- Spatie\LaravelData\DataPipes\DataPipe
- Spatie\LaravelData\DataPipes\CastPropertiesDataPipe
- Spatie\LaravelData\DataPipes\ValidatePropertiesDataPipe
- Spatie\LaravelData\DataPipes\AuthorizedDataPipe
- Spatie\LaravelData\DataPipes\FillRouteParameterPropertiesDataPipe
- Spatie\LaravelData\DataPipes\DefaultValuesDataPipe
- Spatie\LaravelData\DataPipes\InjectPropertyValuesPipe
- Spatie\LaravelData\DataCollection
- Spatie\LaravelData\Optional
- Spatie\LaravelData\Attributes\WithCastable
- Spatie\LaravelData\Attributes\InjectsPropertyValue
- Spatie\LaravelData\Attributes\AutoWhenLoadedLazy
- Spatie\LaravelData\Attributes\MapName
- Spatie\LaravelData\Attributes\AutoInertiaLazy
- Spatie\LaravelData\Attributes\DataCollectionOf
- Spatie\LaravelData\Attributes\WithTransformer
- Spatie\LaravelData\Attributes\AutoLazy
- Spatie\LaravelData\Attributes\FromRouteParameter
- Spatie\LaravelData\Attributes\MapInputName
- Spatie\LaravelData\Attributes\WithCast
- Spatie\LaravelData\Attributes\FromContainer
- Spatie\LaravelData\Attributes\Computed
- Spatie\LaravelData\Attributes\Validation\Digits
- Spatie\LaravelData\Attributes\Validation\Before
- Spatie\LaravelData\Attributes\Validation\ExcludeWithout
- Spatie\LaravelData\Attributes\Validation\AcceptedIf
- Spatie\LaravelData\Attributes\Validation\Ulid
- Spatie\LaravelData\Attributes\Validation\RequiredWithoutAll
- Spatie\LaravelData\Attributes\Validation\Exists
- Spatie\LaravelData\Attributes\Validation\RequiredArrayKeys
- Spatie\LaravelData\Attributes\Validation\ProhibitedUnless
- Spatie\LaravelData\Attributes\Validation\DoesntEndWith
- Spatie\LaravelData\Attributes\Validation\RequiredUnless
- Spatie\LaravelData\Attributes\Validation\ListType
- Spatie\LaravelData\Attributes\Validation\ExcludeUnless
- Spatie\LaravelData\Attributes\Validation\Enum
- Spatie\LaravelData\Attributes\Validation\InArray
- Spatie\LaravelData\Attributes\Validation\CustomValidationAttribute
- Spatie\LaravelData\Attributes\Validation\ArrayType
- Spatie\LaravelData\Attributes\Validation\Prohibited
- Spatie\LaravelData\Attributes\Validation\BeforeOrEqual
- Spatie\LaravelData\Attributes\Validation\CurrentPassword
- Spatie\LaravelData\Attributes\Validation\Present
- Spatie\LaravelData\Attributes\Validation\ObjectValidationAttribute
- Spatie\LaravelData\Attributes\Validation\GreaterThanOrEqualTo
- Spatie\LaravelData\Attributes\Validation\MinDigits
- Spatie\LaravelData\Attributes\Validation\Mimes
- Spatie\LaravelData\Attributes\Validation\Min
- Spatie\LaravelData\Attributes\Validation\In
- Spatie\LaravelData\Attributes\Validation\DateEquals
- Spatie\LaravelData\Attributes\Validation\Same
- Spatie\LaravelData\Attributes\Validation\ValidationAttribute
- Spatie\LaravelData\Attributes\Validation\LessThanOrEqualTo
- Spatie\LaravelData\Attributes\Validation\Exclude
- Spatie\LaravelData\Attributes\Validation\BooleanType
- Spatie\LaravelData\Attributes\Validation\RequiredIf
- Spatie\LaravelData\Attributes\Validation\Url
- Spatie\LaravelData\Attributes\Validation\DoesntStartWith
- Spatie\LaravelData\Attributes\Validation\Nullable
- Spatie\LaravelData\Attributes\Validation\NotIn
- Spatie\LaravelData\Attributes\Validation\IPv6
- Spatie\LaravelData\Attributes\Validation\AlphaDash
- Spatie\LaravelData\Attributes\Validation\DeclinedIf
- Spatie\LaravelData\Attributes\Validation\Password
- Spatie\LaravelData\Attributes\Validation\ProhibitedIf
- Spatie\LaravelData\Attributes\Validation\Lowercase
- Spatie\LaravelData\Attributes\Validation\Numeric
- Spatie\LaravelData\Attributes\Validation\RequiredWith
- Spatie\LaravelData\Attributes\Validation\Different
- Spatie\LaravelData\Attributes\Validation\StartsWith
- Spatie\LaravelData\Attributes\Validation\Sometimes
- Spatie\LaravelData\Attributes\Validation\Image
- Spatie\LaravelData\Attributes\Validation\Confirmed
- Spatie\LaravelData\Attributes\Validation\GreaterThan
- Spatie\LaravelData\Attributes\Validation\StringValidationAttribute
- Spatie\LaravelData\Attributes\Validation\NotRegex
- Spatie\LaravelData\Attributes\Validation\Prohibits
- Spatie\LaravelData\Attributes\Validation\MimeTypes
- Spatie\LaravelData\Attributes\Validation\IP
- Spatie\LaravelData\Attributes\Validation\Uppercase
- Spatie\LaravelData\Attributes\Validation\RequiredWithout
- Spatie\LaravelData\Attributes\Validation\Max
- Spatie\LaravelData\Attributes\Validation\ExcludeIf
- Spatie\LaravelData\Attributes\Validation\AfterOrEqual
- Spatie\LaravelData\Attributes\Validation\MultipleOf
- Spatie\LaravelData\Attributes\Validation\ActiveUrl
- Spatie\LaravelData\Attributes\Validation\IntegerType
- Spatie\LaravelData\Attributes\Validation\RequiredWithAll
- Spatie\LaravelData\Attributes\Validation\Dimensions
- Spatie\LaravelData\Attributes\Validation\After
- Spatie\LaravelData\Attributes\Validation\MacAddress
- Spatie\LaravelData\Attributes\Validation\Distinct
- Spatie\LaravelData\Attributes\Validation\Timezone
- Spatie\LaravelData\Attributes\Validation\Unique
- Spatie\LaravelData\Attributes\Validation\Uuid
- Spatie\LaravelData\Attributes\Validation\Regex
- Spatie\LaravelData\Attributes\Validation\MaxDigits
- Spatie\LaravelData\Attributes\Validation\Date
- Spatie\LaravelData\Attributes\Validation\Size
- Spatie\LaravelData\Attributes\Validation\File
- Spatie\LaravelData\Attributes\Validation\Filled
- Spatie\LaravelData\Attributes\Validation\DateFormat
- Spatie\LaravelData\Attributes\Validation\Json
- Spatie\LaravelData\Attributes\Validation\DigitsBetween
- Spatie\LaravelData\Attributes\Validation\LessThan
- Spatie\LaravelData\Attributes\Validation\Required
- Spatie\LaravelData\Attributes\Validation\Email
- Spatie\LaravelData\Attributes\Validation\Declined
- Spatie\LaravelData\Attributes\Validation\Rule
- Spatie\LaravelData\Attributes\Validation\Alpha
- Spatie\LaravelData\Attributes\Validation\AlphaNumeric
- Spatie\LaravelData\Attributes\Validation\Bail
- Spatie\LaravelData\Attributes\Validation\Accepted
- Spatie\LaravelData\Attributes\Validation\IPv4
- Spatie\LaravelData\Attributes\Validation\EndsWith
- Spatie\LaravelData\Attributes\Validation\Between
- Spatie\LaravelData\Attributes\Validation\StringType
- Spatie\LaravelData\Attributes\Validation\ExcludeWith
- Spatie\LaravelData\Attributes\FromRouteParameterProperty
- Spatie\LaravelData\Attributes\MapOutputName
- Spatie\LaravelData\Attributes\FromAuthenticatedUser
- Spatie\LaravelData\Attributes\FromAuthenticatedUserProperty
- Spatie\LaravelData\Attributes\MergeValidationRules
- Spatie\LaravelData\Attributes\GetsCast
- Spatie\LaravelData\Attributes\AutoClosureLazy
- Spatie\LaravelData\Attributes\LoadRelation
- Spatie\LaravelData\Attributes\AutoInertiaDeferred
- Spatie\LaravelData\Attributes\WithCastAndTransformer
- Spatie\LaravelData\Attributes\WithoutValidation
- Spatie\LaravelData\Attributes\PropertyForMorph
- Spatie\LaravelData\Attributes\FromContainerProperty
- Spatie\LaravelData\Attributes\Hidden
- Spatie\LaravelData\Attributes\Concerns\ResolvesPropertyForInjectedValue
- Spatie\LaravelData\Commands\DataMakeCommand
- Spatie\LaravelData\Commands\DataStructuresCacheCommand
- Spatie\LaravelData\Normalizers\Normalized\NormalizedModel
- Spatie\LaravelData\Normalizers\Normalized\Normalized
- Spatie\LaravelData\Normalizers\Normalized\UnknownProperty
- Spatie\LaravelData\Normalizers\ArrayableNormalizer
- Spatie\LaravelData\Normalizers\ArrayNormalizer
- Spatie\LaravelData\Normalizers\FormRequestNormalizer
- Spatie\LaravelData\Normalizers\ObjectNormalizer
- Spatie\LaravelData\Normalizers\Normalizer
- Spatie\LaravelData\Normalizers\JsonNormalizer
- Spatie\LaravelData\Normalizers\ModelNormalizer
- Spatie\LaravelData\Casts\BuiltinTypeCast
- Spatie\LaravelData\Casts\IterableItemCast
- Spatie\LaravelData\Casts\UnserializeCast
- Spatie\LaravelData\Casts\EnumCast
- Spatie\LaravelData\Casts\EnumerableCast
- Spatie\LaravelData\Casts\CastableCast
- Spatie\LaravelData\Casts\Uncastable
- Spatie\LaravelData\Casts\Castable
- Spatie\LaravelData\Casts\DateTimeInterfaceCast
- Spatie\LaravelData\Casts\Cast
- Spatie\LaravelData\CursorPaginatedDataCollection
- Spatie\LaravelData\Concerns\WithDeprecatedCollectionMethod
- Spatie\LaravelData\Concerns\WireableData
- Spatie\LaravelData\Concerns\EmptyData
- Spatie\LaravelData\Concerns\AppendableData
- Spatie\LaravelData\Concerns\BaseData
- Spatie\LaravelData\Concerns\EnumerableMethods
- Spatie\LaravelData\Concerns\BaseDataCollectable
- Spatie\LaravelData\Concerns\ContextableData
- Spatie\LaravelData\Concerns\TransformableData
- Spatie\LaravelData\Concerns\ValidateableData
- Spatie\LaravelData\Concerns\WrappableData
- Spatie\LaravelData\Concerns\ResponsableData
- Spatie\LaravelData\Concerns\IncludeableData
Download Latest Version: 4.17.1

Previous Versions
Code Integration Example
Make sure to include the correct namespace and class paths for proper usage.
<?php
// Example from PHPlibraries.com
require_once 'libs/spatie/laravel-data/4.17.1/loader.php';
require_once 'libs/illuminate/support/12.33.0/loader.php';
require_once 'libs/illuminate/database/12.33.0/loader.php';
use Spatie\Data\Data;
use Illuminate\Support\ServiceProvider;
$obj = new Data();
echo '✅ Test OK: ' . get_class($obj);
?>
We aim to make using PHP packages easier without Composer. If something doesn't work, let us know — we'll fix it promptly.
Community Discussion
Ask questions, share tips, or report issues below.