# Laravel Data ## Docs - [Available Property Mappers](https://mintlify.wiki/spatie/laravel-data/advanced-usage/available-property-mappers.md): Use built-in mappers to automatically transform property names between different naming conventions - [Commands](https://mintlify.wiki/spatie/laravel-data/advanced-usage/commands.md): Artisan commands for generating and caching Laravel Data objects - [Creating a Cast](https://mintlify.wiki/spatie/laravel-data/advanced-usage/creating-a-cast.md): Build custom casts to transform simple values into complex types - [Creating a Rule Inferrer](https://mintlify.wiki/spatie/laravel-data/advanced-usage/creating-a-rule-inferrer.md): Build custom rule inferrers to automatically infer validation rules for data properties - [Creating a Transformer](https://mintlify.wiki/spatie/laravel-data/advanced-usage/creating-a-transformer.md): Build custom transformers to convert complex values into simple types - [Eloquent Casting](https://mintlify.wiki/spatie/laravel-data/advanced-usage/eloquent-casting.md): Use Laravel Data objects as Eloquent casts for seamless model integration - [Get Data From a Class Quickly](https://mintlify.wiki/spatie/laravel-data/advanced-usage/get-data-from-a-class-quickly.md): Use the WithData trait to quickly generate data objects from models and requests - [In Packages](https://mintlify.wiki/spatie/laravel-data/advanced-usage/in-packages.md): Using Laravel Data in Laravel packages - [Internal Structures](https://mintlify.wiki/spatie/laravel-data/advanced-usage/internal-structures.md): Reference for internal data structures used when writing casts, transformers, and rule inferrers - [Mapping Rules](https://mintlify.wiki/spatie/laravel-data/advanced-usage/mapping-rules.md): Understand when to use original vs mapped property names in Laravel Data - [Normalizers](https://mintlify.wiki/spatie/laravel-data/advanced-usage/normalizers.md): Transform various input types into arrays for data object creation - [Performance](https://mintlify.wiki/spatie/laravel-data/advanced-usage/performance.md): Optimize Laravel Data performance by caching data structure analysis - [Pipeline](https://mintlify.wiki/spatie/laravel-data/advanced-usage/pipeline.md): Configure how data objects are constructed from payloads using the data pipeline - [Traits and Interfaces](https://mintlify.wiki/spatie/laravel-data/advanced-usage/traits-and-interfaces.md): Understand the modular architecture of Laravel Data through traits and interfaces - [TypeScript Transformation](https://mintlify.wiki/spatie/laravel-data/advanced-usage/typescript.md): Automatically generate TypeScript definitions from your Laravel Data objects - [Use with Inertia](https://mintlify.wiki/spatie/laravel-data/advanced-usage/use-with-inertia.md): Integrate Laravel Data with Inertia.js for modern single-page applications - [Use with Livewire](https://mintlify.wiki/spatie/laravel-data/advanced-usage/use-with-livewire.md): Integrate Laravel Data with Livewire components for reactive data objects - [Validation Attributes](https://mintlify.wiki/spatie/laravel-data/advanced-usage/validation-attributes.md): Complete reference of all validation attributes available in Laravel Data - [Working with Dates](https://mintlify.wiki/spatie/laravel-data/advanced-usage/working-with-dates.md): Configure date formats, timezones, and types for date properties in Laravel Data - [Abstract Data](https://mintlify.wiki/spatie/laravel-data/as-a-dto/abstract-data.md): Work with abstract data classes and polymorphic data objects using the morph method. - [Casts](https://mintlify.wiki/spatie/laravel-data/as-a-dto/casts.md): Transform data types using local and global casts for complex types like DateTime, Enums, and custom types. - [Collections](https://mintlify.wiki/spatie/laravel-data/as-a-dto/collections.md): Create and work with collections of data objects using arrays, Laravel collections, and paginators. - [Computed Values](https://mintlify.wiki/spatie/laravel-data/as-a-dto/computed.md): Define computed properties that are automatically calculated based on other property values. - [Creating a Data Object](https://mintlify.wiki/spatie/laravel-data/as-a-dto/creating-a-data-object.md): Learn how to create and initialize data objects using various methods including arrays, models, and magical creation methods. - [Default Values](https://mintlify.wiki/spatie/laravel-data/as-a-dto/defaults.md): Set default values for data object properties using constructors and class properties. - [Factories](https://mintlify.wiki/spatie/laravel-data/as-a-dto/factories.md): Customize data object creation with factories for advanced control over validation, casts, and property mapping. - [Injecting Property Values](https://mintlify.wiki/spatie/laravel-data/as-a-dto/injecting-property-values.md): Automatically inject values from route parameters, authenticated users, and the service container into data object properties. - [Mapping Property Names](https://mintlify.wiki/spatie/laravel-data/as-a-dto/mapping-property-names.md): Map property names between different naming conventions like snake_case and camelCase using attributes and mappers. - [From a Model](https://mintlify.wiki/spatie/laravel-data/as-a-dto/model-to-data-object.md): Create data objects from Eloquent models with support for casts, attributes, accessors, and relations. - [Nesting](https://mintlify.wiki/spatie/laravel-data/as-a-dto/nesting.md): Nest data objects within other data objects and work with collections of nested data objects. - [Optional Properties](https://mintlify.wiki/spatie/laravel-data/as-a-dto/optional-properties.md): Handle optional properties in data objects for partial updates and flexible data structures. - [From a Request](https://mintlify.wiki/spatie/laravel-data/as-a-dto/request-to-data-object.md): Create data objects from Laravel requests with automatic validation and dependency injection. - [Appending Properties](https://mintlify.wiki/spatie/laravel-data/as-a-resource/appending-properties.md): Add extra properties to data objects when transforming to API resources - [From Data to Array](https://mintlify.wiki/spatie/laravel-data/as-a-resource/from-data-to-array.md): Transform Laravel Data objects into arrays and JSON - [From Data to Resource](https://mintlify.wiki/spatie/laravel-data/as-a-resource/from-data-to-resource.md): Learn how to transform Laravel Data objects into JSON API resources - [Lazy Properties](https://mintlify.wiki/spatie/laravel-data/as-a-resource/lazy-properties.md): Control which properties are included in your API resources using lazy evaluation - [Mapping Property Names](https://mintlify.wiki/spatie/laravel-data/as-a-resource/mapping-property-names.md): Transform property names between camelCase and snake_case in API responses - [Transformers](https://mintlify.wiki/spatie/laravel-data/as-a-resource/transformers.md): Transform complex types like Carbon and DateTime into simple types for API responses - [Wrapping](https://mintlify.wiki/spatie/laravel-data/as-a-resource/wrapping.md): Wrap data objects in a custom key for consistent API responses - [Changelog](https://mintlify.wiki/spatie/laravel-data/changelog.md): Major version history and breaking changes for Laravel Data - [Installation](https://mintlify.wiki/spatie/laravel-data/installation.md): Install Laravel Data via Composer and configure the package - [Introduction](https://mintlify.wiki/spatie/laravel-data/introduction.md): Powerful data objects for Laravel that unify form requests, API resources, and TypeScript definitions - [Questions & Issues](https://mintlify.wiki/spatie/laravel-data/questions-issues.md): How to get help, report issues, and contribute to Laravel Data - [Quickstart](https://mintlify.wiki/spatie/laravel-data/quickstart.md): Build your first Laravel Data object in minutes with this step-by-step guide - [Requirements](https://mintlify.wiki/spatie/laravel-data/requirements.md): System requirements for Laravel Data - [Third Party Packages](https://mintlify.wiki/spatie/laravel-data/third-party-packages.md): Community packages that extend Laravel Data functionality - [Auto Rule Inferring](https://mintlify.wiki/spatie/laravel-data/validation/auto-rule-inferring.md): Learn how Laravel Data automatically infers validation rules from property types - [Introduction](https://mintlify.wiki/spatie/laravel-data/validation/introduction.md): Learn how Laravel Data validates requests, arrays, and other data structures with automatic rule inference - [Manual Rules](https://mintlify.wiki/spatie/laravel-data/validation/manual-rules.md): Define validation rules manually using the rules method on your data class - [Nesting Data](https://mintlify.wiki/spatie/laravel-data/validation/nesting-data.md): Learn how validation works with nested data objects and collections - [Skipping Validation](https://mintlify.wiki/spatie/laravel-data/validation/skipping-validation.md): Learn how to skip validation for specific properties or entire data classes - [Using Validation Attributes](https://mintlify.wiki/spatie/laravel-data/validation/using-validation-attributes.md): Add Laravel validation rules as PHP attributes to your data object properties - [Working with the Validator](https://mintlify.wiki/spatie/laravel-data/validation/working-with-the-validator.md): Customize validation messages, attributes, redirects, and hook into the validator