All notable changes to laravel-data
will be documented in this file.
- Add WithCastable attribute (#349)
- Quote non-standard object keys when transforming to Typescript (#367)
- Allow filling props from route parameters (#341)
- Better handing of custom regex validation rules(#342)
- Fix types (#348)
- Improve validation when strings are passed for nested data objects
- Add FieldReference to Before and After Validation attribute (#345)
- The validation logic is completely rewritten
-
- Add support for nested nullable and optional data objects
-
- Allow referencing other fields in validation attributes when the data is nested
-
- Allow referencing url parameters (and even model properties) in validation attributes
-
- Allow circular dependencies when validating data
-
- Add support for nested validation messages and attributes
- Package specific properties are renamed to avoid conflicts
- Serialization logic updated to only serialize your properties
- Prevent fatal error when passing a string containing only an integer to JSON Normalizer (#322)
- Ignore leading ! in DateTimeInterfaceTransformer (#325)
- Extend the make:data command to be more flexible (#335)
- Add Laravel 10.x support (#331)
- Add a way to prepend DataPipes to the pipeline (#305)
- Better IDE completion (#307)
- Make eloquent collection cast respect collection (#308)
- fix support to return 201 status code in Json Responses (#291)
- Add generic return type for DataCollection::toCollection (#290)
- Improve ide.json completion (#294)
- Pass in payload relative to the data object when generating rules (#264)
- ignore phpstorm attributes when instantiating and add readonly property (#281)
- Stop using custom pipeline when creating data magically from requests
- set timezones in datetime casts (#287 )
- add support for optional properties in TypeScript transformer (#153)
- refactor test suite to Pest (#239)
- update the docs
- add a
StudlyMapper
- add better support for Livewire
- accept 'float' as data type (#237)
- fix typo in mime type validation rule(#243)
- add support for enums in validation attributes
- add support for withoutTrashed to exists validation attribute (#248)
- add PHP 8.2 testing in GH actions
- add ability to modify properties before the data pipeline (#247)
- fix first and last page url are never null (#215)
- add ability to statically retrieve a data models rules (#221)
- improved pattern matching in DataCollectionAnnotationReader (#225)
- add ExcludeWithout attribute rule (#230)
- improve getValidationRules to also retrieve wildcard rules (#231)
- return property with or without mapping the name (#199)
- Improve pattern matching in DataCollectionAnnotationReader (#214)
- Add ability to retrieve rules for a data object (#221)
- Use generics with Data::collection (#213)
- Improve pattern matching in DataCollectionAnnotationReader (#214)
- Fix TypeScript Transformer paginated collections, first and last page url are never null (#215)
- Add support for a JsonSerializer
- Fix generic iterator definition for data collections
- Fix validation of DataCollection objects not working as expected
- Add support for timezone manipulation in casts and transformers (#200)
- use AbstractCloner instead of reflection (#196)
- Add var dumper caster (#195)
- Allow direct pipeline call (#193)
- Rename ArrayableNormalizer (#191)
- Make normalizers configurable (#190)
- Add cast lazy condition result to bool (#186)
- Add conditional return types for collections (#184)
- Fix windows tests
- Fix validation rules not being used for data collections and objects
- Add IDE completion support (#182)
- Add support for invokable rules (#179)
- more consistent use of transform through codebase for transforming collections and data
- Add class defined partials (#164)
- Use mapped property names in TypeScript (#154)
- Add make:data command (#157)
- Better support for overwritten rules
- Add support for Lazy inertia props (#163)
- Add support for array query parameters as partials (#162)
Version 2 of laravel-data is a complete overhaul, we've almost completely rewritten the package.
This is a (non-complete) list of the new features:
- A DataPipeline
- Data normalizers
- Mappable property names
- Wrapping of data in responses
only
andexcept
methods on Data and DataCollections- Multiple parameter magic methods
- Optional properties
- Split DataCollections
- Better support for TypeScript Transformer
- And a lot more ...
- Fix optional parameters (#152)
- Use protected properties and methods (#147 )
- add values() on DataCollection by @Nielsvanpach in spatie/laravel-data#135
- @Nielsvanpach made their first contribution in spatie/laravel-data#135
Full Changelog: https://github.com/spatie/laravel-data/compare/1.4.7...1.5.0
- support $payload as a dependency in rules (#123)
- Add Dependency Injection for rules, messages, and attributes methods (#114)
- Add support for stdClass payload casting (#106)
- use present validation rule instead of required for data collections
- allow using default password config in password validation attribute (#94)
- solve binding issues on Laravel Octane (#101)
- fixes a bug where models nested by relation could not be created due to date casts
- add a
links
array to the paginated response - stop execution of
lazy::whenLoaded
closure when the relation isnull
- fix for aborting value assignment after a false boolean (#80)
- add a
WithoutValidation
attribute - allow transformers to target native types, data collections and data objects
- Allow transformers to target Data and DataCollections
- removes checks for built in types and
isBuiltIn
fromDataProperty
- add better support for defaults
- Laravel 9.x by @aidan-casey in spatie/laravel-data#77
- Removes Spatie's Laravel Enums from dev requirements by @aidan-casey in spatie/laravel-data#76
- @aidan-casey made their first contribution in spatie/laravel-data#77
Full Changelog: https://github.com/spatie/laravel-data/compare/1.3.2...1.3.3
- add support for json_encode to Data objects
- add support for json_encode to DataCollection objects
- add basic support for intersection types
- allow casting of built in PHP types
- add support for inferring enum rules
- fix an issue where an Enum validation attribute would not work
- fixes the RequiredRuleResolver to support custom rules like
Enum
- add an Enum validation rule attribute
- rename the
authorized
method toauthorize
- disable the behavior were excluded conditional properties still could be included
- fix return type notice message
- fixes an issue where data object could not be created when it had lazy nested data object
- fixes windows test suite
- when creating data objects, we now will always run validation when a
Request
object is given not only when a data object is injected - removal of
DataFromRequestResolver
- added
DataValidatorResolver
- change data property types collection checking procedure
- move
spatie/test-time
dependency to require-dev - expand support for nested data object creation (#19)
- expand support for annotating data collections
- revert allow ignoring with a closure within a unique rule
- allow ignoring with a closure within a unique rule
- add a
WithData
trait for quicker getting data from objects
- fix required rules being added when not allowed
- initial release