v12.17.0 - 2025-06-03
- [11.x] Backport
TestResponse::assertRedirectBackby @GrahamCampbell in laravel#55780 - Add support for sending raw (non-encoded) attachments in Resend mail by @Roywcm in laravel#55837
- [12.x] chore: return Collection from timestamps methods by @calebdw in laravel#55871
- [12.x] fix: fully qualify collection return type by @calebdw in laravel#55873
- [12.x] Fix Blade nested default component resolution for custom namespaces by @daniser in laravel#55874
- [12.x] Fix return types in console command handlers to void by @michaelnabil230 in laravel#55876
- [12.x] Ability to perform higher order static calls on collection items by @daniser in laravel#55880
- Adds Resource helpers to cursor paginator by @jsandfordhughescoop in laravel#55879
- Add reorderDesc() to Query Builder by @ghabriel25 in laravel#55885
- [11.x] Fixes Symfony Console 7.3 deprecations on closure command by @crynobone in laravel#55888
- [12.x] Add
AsUrimodel cast by @ash-jc-allen in laravel#55909 - [12.x] feat: Add Contextual Implementation/Interface Binding via PHP8 Attribute by @yitzwillroth in laravel#55904
- [12.x] Add tests for the
AuthenticateSessionMiddleware by @imanghafoori1 in laravel#55900 - [12.x] Allow brick/math ^0.13 by @jnoordsij in laravel#54964
- [12.x] fix: Factory::state and ::prependState generics by @calebdw in laravel#55915
v12.16.0 - 2025-05-27
- [12.x] Change priority in optimize:clear by @amirmohammadnajmi in laravel#55792
- [12.x] Fix
TestResponse::assertSessionMissing()when given an array of keys by @crynobone in laravel#55800 - [12.x] Allowing
ContextAttribute to Interact with Hidden by @devajmeireles in laravel#55799 - Add support for sending raw (non-encoded) attachments in Resend mail driver by @Roywcm in laravel#55803
- [12.x] Added option to always defer for flexible cache by @Zwartpet in laravel#55802
- [12.x] style: Use null coalescing assignment (??=) for cleaner code by @mohsenetm in laravel#55823
- [12.x] Introducing
Arr::hasAllby @devajmeireles in laravel#55815 - [12.x] Restore lazy loading check by @decadence in laravel#55817
- [12.x] Minor language update by @AhmedAlaa4611 in laravel#55812
- fix(cache/redis): use connectionAwareSerialize in RedisStore::putMany() by @superbiche in laravel#55814
- [12.x] Fix
ResponseFactoryshould also acceptnullcallback by @crynobone in laravel#55833 - [12.x] Add template variables to scope by @wietsewarendorff in laravel#55830
- [12.x] Introducing
toUrito theStringableClass by @devajmeireles in laravel#55862 - [12.x] Remove remaining @return tags from constructors by @AhmedAlaa4611 in laravel#55858
- [12.x] Replace alias
is_integer()withis_int()to comply with Laravel Pint by @xurshudyan in laravel#55851 - Fix argument types for Illuminate/Database/Query/Builder::upsert() by @jellisii in laravel#55849
- [12.x] Add
in_array_keysvalidation rule to check for presence of specified array keys by @stevebauman in laravel#55807 - [12.x] Add
Rule::containsby @stevebauman in laravel#55809
v12.15.0 - 2025-05-20
- [12.x] Add locale-aware number parsing methods to Number class by @informagenie in laravel#55725
- [12.x] Add a default option when retrieving an enum from data by @elbojoloco in laravel#55735
- Revert "[12.x] Update "Number::fileSize" to use correct prefix and add prefix param" by @ziadoz in laravel#55741
- [12.x] Remove apc by @AhmedAlaa4611 in laravel#55745
- [12.x] Add param type for
assertJsonStructure&assertExactJsonStructuremethods by @milwad-dev in laravel#55743 - [12.x] Fix type casting for environment variables in config files by @adamwhp in laravel#55737
- [12.x] Preserve "previous" model state by @crynobone in laravel#55729
- [12.x] Passthru
getCountForPaginationon an Eloquent\Builder by @cosmastech in laravel#55752 - [12.x] Add
assertClientErrormethod toTestResponseby @shane-zeng in laravel#55750 - Install Broadcasting Command Fix for Livewire Starter Kit by @joshcirre in laravel#55774
- Clarify units for benchmark value for IDE accessibility by @mike-healy in laravel#55781
- Improved PHPDoc Return Types for Eloquent's Original Attribute Methods by @clementbirkle in laravel#55779
- [12.x] Prevent
preventsLazyLoadingexception when usingautomaticallyEagerLoadRelationshipsby @devajmeireles in laravel#55771 - [12.x] Add
hashstring helper by @istiak-tridip in laravel#55767 - [12.x] Update
assertSessionMissing()signature to matchassertSessionHas()by @nexxai in laravel#55763 - Fix: php artisan db command if no password by @mr-chetan in laravel#55761
- [12.x] Types: InteractsWithPivotTable::sync by @liamduckett in laravel#55762
- [12.x] feat: Add
current_page_urlto Paginator by @mariomka in laravel#55789 - Correct return type in PhpDoc for command fail method by @Muetze42 in laravel#55783
- [12.x] Add
assertRedirectToActionmethod to test redirection to controller actions by @xurshudyan in laravel#55788 - [12.x] Add Context contextual attribute by @martinbean in laravel#55760
v12.14.1 - 2025-05-13
- [10.x] Refine error messages for detecting lost connections (Debian bookworm compatibility) by @mfn in laravel#53794
- [10.x] Bump minimum
league/commonmarkby @crynobone in laravel#53829 - [10.x] Backport 11.x PHP 8.4 fix for str_getcsv deprecation by @aka-tpayne in laravel#54074
- [10.x] Fix attribute name used on
Validatorinstance within certain rule classes by @crynobone in laravel#54943 - Add
Illuminate\Support\EncodedHtmlStringby @crynobone in laravel#54737 - [11.x] Fix missing
return $thisforassertOnlyJsonValidationErrorsby @LeTamanoir in laravel#55099 - [11.x] Fix
Illuminate\Support\EncodedHtmlStringfrom causing breaking change by @crynobone in laravel#55149 - [11.x] Respect custom path for cached views by the
AboutCommandby @alies-dev in laravel#55179 - [11.x] Include all invisible characters in Str::trim by @laserhybiz in laravel#54281
- [11.x] Test Improvements by @crynobone in laravel#55302
- [11.x] Remove incorrect syntax from mail's
messagetemplate by @crynobone in laravel#55530 - [11.x] Allows to toggle markdown email encoding by @crynobone in laravel#55539
- [11.x] Fix
EncodedHtmlStringto ignore instance ofHtmlStringby @jbraband in laravel#55543 - [11.x] Test Improvements by @crynobone in laravel#55549
- [11.x] Install Passport 13.x by @hafezdivandari in laravel#55621
- [11.x] Bump minimum league/commonmark by @andrextor in laravel#55660
- Backporting Timebox fixes to 11.x by @valorin in laravel#55705
- Test SQLServer 2017 on Ubuntu 22.04 by @crynobone in laravel#55716
- [11.x] Fix Symfony 7.3 deprecations by @crynobone in laravel#55711
- Easily implement broadcasting in a React/Vue Typescript app (Starter Kits) by @tnylea in laravel#55170
v12.14.0 - 2025-05-13
- [12.x] Support
useCurrenton date and year column types by @nicholasbrantley in laravel#55619 - [12.x] Update "Number::fileSize" to use correct prefix and add prefix param by @Boy132 in laravel#55678
- [12.x] Update PHPDoc for whereRaw to allow Expression as $sql by @mitoop in laravel#55674
- Revert "[12.x] Make Blueprint Resolver Statically" by @taylorotwell in laravel#55690
- [12.x] Support Virtual Properties When Serializing Models by @beschoenen in laravel#55691
- [12.X] Fix
Http::preventStrayRequestserror propagation when usingHttp::poolby @LeTamanoir in laravel#55689 - [12.x] incorrect use of generics in Schema\Builder by @taka-oyama in laravel#55687
- [12.x] Add option to disable MySQL ssl when restoring or squashing migrations by @andersonls in laravel#55683
- [12.x] Add
exceptandexceptHiddenmethods toContextclass by @xurshudyan in laravel#55692 - [12.x] Container
currentlyResolvingutility by @jrseliga in laravel#55684 - [12.x] Container
currentlyResolvingtest by @jrseliga in laravel#55694 - [12.x] Fix handling of default values for route parameters with a binding field by @stancl in laravel#55697
- Move Timebox for Authentication and add to password resets by @valorin in laravel#55701
- [12.x] perf: Optimize BladeCompiler by @rzv-me in laravel#55703
- [12.x] perf: support iterables for event discovery paths by @calebdw in laravel#55699
- [12.x] Types: AuthorizesRequests::resourceAbilityMap by @liamduckett in laravel#55706
- [12.x] Add flexible support to memoized cache store by @timacdonald in laravel#55709
- [12.x] Introduce Arr::from() by @daniser in laravel#55715
- [12.x] Fix the
getCurrentlyAttachedPivotswrongmorphClassfor morph to many relationships by @amir9480 in laravel#55721 - [12.x] Improve typehints for Http classes by @cosmastech in laravel#54783
- Add deleteWhen for throttle exceptions job middleware by @moshe-autoleadstar in laravel#55718
v12.13.0 - 2025-05-07
- [12.x] fix no arguments return type in request class by @olivernybroe in laravel#55631
- [12.x] Add support for callback evaluation in containsOneItem method by @fernandokbs in laravel#55622
- [12.x] add generics to aggregate related methods and properties by @taka-oyama in laravel#55628
- [12.x] Fix typo in PHPDoc by @AhmedAlaa4611 in laravel#55636
- [12.x] Allow naming queued closures by @willrowe in laravel#55634
- [12.x] Add
assertRedirectBackassertion method by @ryangjchandler in laravel#55635 - [12.x] Typehints for bindings by @cosmastech in laravel#55633
- [12.x] add PHP Doc types to arrays for methods in Database\Grammar by @taka-oyama in laravel#55629
- fix trim null arg deprecation by @apreiml in laravel#55649
- [12.x] Support predis/predis 3.x by @gabrielrbarbosa in laravel#55641
- Bump vite from 5.4.18 to 5.4.19 in /src/Illuminate/Foundation/resources/exceptions/renderer by @dependabot in laravel#55655
- [12.x] Fix predis versions by @GrahamCampbell in laravel#55654
- [12.x] Bump minimum league/commonmark by @szepeviktor in laravel#55659
- [12.x] Fix typo in MemoizedStoreTest by @szepeviktor in laravel#55662
- [12.x] Queue event listeners with enum values by @wgriffioen in laravel#55656
- [12.x] Implement releaseAfter method in RateLimited middleware by @adamjgriffith in laravel#55671
- [12.x] Improve Cache Tests by @nuernbergerA in laravel#55670
- [12.x] Only pass model IDs to Eloquent
whereAttachedTomethod by @ashleyshenton in laravel#55666 - feat(bus): allow adding multiple jobs to chain by @dallyger in laravel#55668
- [12.x] add generics to QueryBuilder’s column related methods by @taka-oyama in laravel#55663
v12.12.0 - 2025-05-01
- [12.x] Make Blueprint Resolver Statically by @finagin in laravel#55607
- [12.x] Allow limiting number of assets to preload by @timacdonald in laravel#55618
- [12.x] Set job instance on "failed" command instance by @willrowe in laravel#55617
v12.11.1 - 2025-04-30
- Revert "[12.x]
ScheduledTaskFailednot dispatched on scheduled task failing" by @taylorotwell in laravel#55612 - [12.x] Resolve issue with BelongsToManyRelationship factory by @jackbayliss in laravel#55608
v12.11.0 - 2025-04-29
- Add payload creation and original delay info to job payload by @taylorotwell in laravel#55529
- Add config option to ignore view cache timestamps by @pizkaz in laravel#55536
- [12.x] Dispatch NotificationFailed when sending fails by @rodrigopedra in laravel#55507
- [12.x] Option to disable dispatchAfterResponse in a test by @gdebrauwer in laravel#55456
- [12.x] Pass flags to custom Json::$encoder by @rodrigopedra in laravel#55548
- [12.x] Use pendingAttributes of relationships when creating relationship models via model factories by @gdebrauwer in laravel#55558
- [12.x] Fix double query in model relation serialization by @AndrewMast in laravel#55547
- [12.x] Improve circular relation check in Automatic Relation Loading by @litvinchuk in laravel#55542
- [12.x] Prevent relation autoload context from being serialized by @litvinchuk in laravel#55582
- Remove
@internalAnnotation from$componentsProperty inInteractsWithIOby @michaelnabil230 in laravel#55580 - Ensure fake job implements job contract by @timacdonald in laravel#55574
- [12.x] Fix
AnyOfconstructor parameter type by @axlon in laravel#55577 - Sync changes to Illuminate components before release by @driesvints in laravel#55591
- [12.x] Set class-string generics on
Enumrule by @cosmastech in laravel#55588 - [12.x] added detailed doc types to bindings related methods by @taka-oyama in laravel#55576
- [12.x] Improve @use directive to support function and const modifiers by @rodolfosrg in laravel#55583
- 12.x scheduled task failed not dispatched on scheduled task failing by @achrafAa in laravel#55572
- [12.x] Introduce Reflector methods for accessing class attributes by @daniser in laravel#55568
- [12.x] Typed getters for Arr helper by @tibbsa in laravel#55567
v12.10.2 - 2025-04-24
- [12.x] Address Model@relationLoaded when relation is null by @rodrigopedra in laravel#55531
v12.10.1 - 2025-04-23
- Revert "Use value() helper in 'when' method to simplify code" #55465 by @mohammadrasoulasghari in laravel#55514
- [12.x] Use xxh128 when comparing views for changes by @shawnlindstrom in laravel#55517
- [12.x] Ensure related models is iterable on
HasRelationships@relationLoaded()by @rodrigopedra in laravel#55519 - [12.x] Add Enum support for assertJsonPath in AssertableJsonString.php by @azim-kordpour in laravel#55516
v12.10.0 - 2025-04-22
- Use value() helper in 'when' method by @mohammadrasoulasghari in laravel#55465
- [12.x] Test
@usedirective without quotes by @osbre in laravel#55462 - [12.x] Enhance Broadcast Events Test Coverage by @roshandelpoor in laravel#55458
- [12.x] Add
ConditionableTrait toFluentby @michaelnabil230 in laravel#55455 - [12.x] Fix relation auto loading with manually set relations by @patrickweh in laravel#55452
- Add missing types to RateLimiter by @ClaudioEyzaguirre in laravel#55445
- [12.x] Fix for global autoload relationships not working in certain cases by @litvinchuk in laravel#55443
- [12.x] Fix adding
setTagsmethod on new cache flush events by @erikn69 in laravel#55405 - Fix: Unique lock not being released after transaction rollback in ShouldBeUnique jobs with afterCommit() by @toshitsuna-otsuka in laravel#55420
- [12.x] Extends
AsCollectionto map items into objects or other values by @DarkGhostHunter in laravel#55383 - [12.x] Fix group imports in Blade
@usedirective by @osbre in laravel#55461 - chore(tests): align test names with idiomatic naming style by @kauffinger in laravel#55496
- Update compiled views only if they actually changed by @pizkaz in laravel#55450
- Improve performance of Arr::dot method - 300x in some cases by @cyppe in laravel#55495
- [12.x] Add tests for
CacheBasedSessionHandlerby @imanghafoori1 in laravel#55487 - [12.x] Add tests for
FileSessionHandlerby @imanghafoori1 in laravel#55484 - [12.x] Add tests for
DatabaseSessionHandlerby @imanghafoori1 in laravel#55485 - [12.x] Fix many to many detach without IDs broken with custom pivot class by @amir9480 in laravel#55490
- [12.x] Support nested relations on
relationLoadedmethod by @tmsperera in laravel#55471 - Bugfix for Cache::memo()->many() returning the wrong value with an integer key type by @bmckay959 in laravel#55503
- [12.x] Allow Container to build
Migratorfrom class name by @cosmastech in laravel#55501
v12.9.2 - 2025-04-16
- [12.x] Fixed a bug in using
illuminate/consolein external apps by @andrey-helldar in laravel#55430 - Disable SQLServer 2017 CI as
ubuntu-20.24has been removed by @crynobone in laravel#55425
v12.9.1 - 2025-04-16
- [12.x] Forward only passed arguments into Illuminate\Database\Eloquent\Collection::partition method by @MarekVikartovsky in laravel#55422
- [12.x] Add test for complex context manipulation in Logger by @roshandelpoor in laravel#55423
- [12.x] Remove unused var from
DumpCommandby @cosmastech in laravel#55431 - [12.x] Fix the serve command sometimes fails to destructure the request pool array by @tonysm in laravel#55427
- [12.x] Changes to
package-lock.jsonshould triggernpm run buildby @crynobone in laravel#55426
v12.9.0 - 2025-04-15
- Add types to ViewErrorBag by @AJenbo in laravel#55329
- Add types to MessageBag by @AJenbo in laravel#55327
- [12.x] add generics to commonly used methods in Schema/Builder by @taka-oyama in laravel#55330
- Return frozen time for easier testing by @jasonmccreary in laravel#55323
- Enhance DetectsLostConnections to Support AWS Aurora Credential Rotation Scenario by @msaifmfz in laravel#55331
- [12.x] Rename test method of failedRequest() by @LKaemmerling in laravel#55332
- feat: Add a callback to be called on transaction failure by @dshafik in laravel#55338
- [12.x] Add withRelationshipAutoloading method to model by @litvinchuk in laravel#55344
- [12.x] Enable HTTP client retries when middleware throws an exception by @27pchrisl in laravel#55343
- [12.x] Fix Closure serialization error in automatic relation loading by @litvinchuk in laravel#55345
- Add test for Unique validation rule with WhereIn constraints by @mohammadrasoulasghari in laravel#55351
- Add @throws in doc-blocks by @mohammadrasoulasghari in laravel#55361
- [12.x] Update
propagateRelationAutoloadCallbackToRelationmethod doc-block by @derian-all-win-software in laravel#55363 - [12.x] - Redis - Establish connection first, before set the options by @alexmontoanelli in laravel#55370
- [12.x] Fix translation FileLoader overrides with a missing key by @fabio-ivona in laravel#55342
- [12.x] Fix pivot model events not working when using the
withPivotValueby @amir9480 in laravel#55280 - [12.x] Introduce memoized cache driver by @timacdonald in laravel#55304
- [12.x] Add test for Filesystem::lastModified() method by @roshandelpoor in laravel#55389
- [12.x] Supports
pda/pheanstalk7 by @crynobone in laravel#55397 - [12.x] Add comprehensive filesystem operation tests to FilesystemTest by @roshandelpoor in laravel#55399
- Bump vite from 5.4.17 to 5.4.18 in /src/Illuminate/Foundation/resources/exceptions/renderer by @dependabot in laravel#55402
- Add descriptive error messages to assertViewHas() by @3Descape in laravel#55392
- Use Generic Types Annotations for LazyCollection Methods by @mohammadrasoulasghari in laravel#55380
- [12.x] Add test coverage for Process sequence with multiple env variables by @roshandelpoor in laravel#55406
- [12.x] Fix cc/bcc/replyTo address merging in
MailMessageby @onlime in laravel#55404 - [12.x] Add a
makefunction in theFluentby @michaelnabil230 in laravel#55417
v12.8.1 - 2025-04-08
v12.8.0 - 2025-04-08
- [12.x] only check for soft deletes once when mass-pruning by @cosmastech in laravel#55274
- [12.x] Add createMany mass-assignment variants to
HasOneOrManyrelation by @onlime in laravel#55262 - cosmetic: include is_array() case in match construct of getArrayableItems by @epic-64 in laravel#55275
- Add tests for InvokeSerializedClosureCommand by @Amirhf1 in laravel#55281
- [12.x] Temporarily prevents PHPUnit 12.1 by @crynobone in laravel#55297
- [12.x] Test Improvements by @crynobone in laravel#55306
- Bump vite from 5.4.12 to 5.4.17 in /src/Illuminate/Foundation/resources/exceptions/renderer by @dependabot in laravel#55301
- [12.x] Test Improvements by @crynobone in laravel#55307
- [12.x] add generics to array types for Schema Grammars by @taka-oyama in laravel#55314
- [12.x] fix missing nullable for Query/Grammar::compileInsertGetId by @taka-oyama in laravel#55311
- [12.x] Adds
fromJson()to Collection by @DarkGhostHunter in laravel#55310 - [12.x] Fix
illuminate/databaseusage as standalone package by @crynobone in laravel#55309 - Correct array key in InteractsWithInput by @AJenbo in laravel#55287
- [12.x] Fix support for adding custom observable events from traits by @willrowe in laravel#55286
- [12.x] Added Automatic Relation Loading (Eager Loading) Feature by @litvinchuk in laravel#53655
- [12.x] Modify PHPDoc for Collection::chunkWhile functions to support preserving keys by @jsvdvis in laravel#55324
- [12.x] Introduce Rule::anyOf() for Validating Against Multiple Rule Sets by @brianferri in laravel#55191
v12.7.2 - 2025-04-03
v12.7.1 - 2025-04-03
v12.7.0 - 2025-04-03
- [12.x]
AbstractPaginatorshould implementCanBeEscapedWhenCastToStringby @gdebrauwer in laravel#55256 - [12.x] Add
whereAttachedTo()Eloquent builder method by @bakerkretzmar in laravel#55245 - Make Illuminate\Support\Uri Macroable by @riesjart in laravel#55260
- [12.x] Add resource helper functions to Model/Collections by @TimKunze96 in laravel#55107
- [12.x]: Use char(36) for uuid type on MariaDB < 10.7.0 by @boedah in laravel#55197
- [12.x] Introducing
toArraytoComponentAttributeBagclass by @devajmeireles in laravel#55258
v12.6.0 - 2025-04-02
- [12.x] Dont stop pruning if pruning one model fails by @gdebrauwer in laravel#55237
- [12.x] Update Date Facade Docblocks by @fdalcin in laravel#55235
- Make
db:seedcommand prohibitable by @spawnia in laravel#55238 - [12.x] Introducing
Rules\Password::appliedRulesMethod by @devajmeireles in laravel#55206 - [12.x] Allowing merging model attributes before insert via
Model::fillAndInsert()by @cosmastech in laravel#55038 - [12.x] Fix type hints for DateTimeZone and DateTimeInterface on DateFactory by @AndrewMast in laravel#55243
- [12.x] Fix DateFactory docblock type hints by @AndrewMast in laravel#55244
- List missing
migrate:rollbackin DB::prohibitDestructiveCommands PhpDoc by @spawnia in laravel#55252 - [12.x] Add
Http::requestException()by @cosmastech in laravel#55241 - New: Uri
pathSegments()helper method by @chester-sykes in laravel#55250 - [12.x] Do not require returning a Builder instance from a local scope method by @cosmastech in laravel#55246
v12.5.0 - 2025-04-01
- Correct misspellings by @szepeviktor in laravel#55218
- [12.x] Add ability to flush state on Vite helper by @timacdonald in laravel#55228
- [12.x] Support taggeable store flushed cache events by @erikn69 in laravel#55223
- Revert "[12.x] Support taggeable store flushed cache events" by @taylorotwell in laravel#55232
- [12.x] Allow configuration of retry period for RoundRobin and Failover mail transports by @jnoordsij in laravel#55222
- [12.x] Add --json option to EventListCommand by @hotsaucejake in laravel#55207
v12.4.1 - 2025-03-30
- [12.x] Add
Expressiontype to param$valueofQueryBuilderorHaving()method by @faissaloux in laravel#55202 - [12.x] Fix URL generation with optional parameters (regression in #54811) by @stancl in laravel#55213
- [12.x] Fix failing tests on windows OS by @imanghafoori1 in laravel#55210
v12.4.0 - 2025-03-29
- [12.x] Reset PHP’s peak memory usage when resetting scope for queue worker by @TimWolla in laravel#55069
- [12.x] Add
AsHtmlStringcast by @ralphjsmit in laravel#55071 - [12.x] Add
Arr::sole()method by @ralphjsmit in laravel#55070 - Improve warning message in
ApiInstallCommandby @sajjadhossainshohag in laravel#55081 - [12.x] use already determined
relatedproperty by @browner12 in laravel#55075 - [12.x] use "class-string" where appropriate in relations by @browner12 in laravel#55074
- [12.x]
QueueFake::listenersPushed()by @cosmastech in laravel#55063 - [12.x] Added except() method to Model class for excluding attributes by @vishal2931 in laravel#55072
- [12.x] fix: add TPivotModel default and define pivot property in {Belongs,Morph}ToMany by @calebdw in laravel#55086
- [12.x] remove
@returndocblocks on constructors by @browner12 in laravel#55076 - [12.x] Add NamedScope attribute by @shaedrich in laravel#54450
- [12.x] Improve syntax highlighting for stub type files by @kayw-geek in laravel#55094
- [12.x] Prefer
new CollectionoverCollection::makeby @AhmedAlaa4611 in laravel#55091 - [12.x] Fix except() method to support casted values by @vishal2931 in laravel#55124
- [12.x] Add testcase for findSole method by @mrvipchien in laravel#55115
- [12.x] Types: PasswordBroker::reset by @liamduckett in laravel#55109
- [12.x] assertThrowsNothing by @gdebrauwer in laravel#55100
- [12.x] Fix type nullability on PasswordBroker.events property by @jnoordsij in laravel#55097
- [12.x] Fix return type annotation in decrementPendingJobs method by @shane-zeng in laravel#55133
- [12.x] Fix return type annotation in compile method by @shane-zeng in laravel#55132
- [12.x] feat: Add
whereNullandwhereNotNulltoAssertablejsonby @faissaloux in laravel#55131 - [12.x] fix: use contextual bindings in class dependency resolution by @calebdw in laravel#55090
- Better return types for
Illuminate\Queue\Jobs\Job::getJobId()andIlluminate\Queue\Jobs\DatabaseJob::getJobId()methods by @petrknap in laravel#55138 - Remove remaining @return tags from constructors by @mohammadrasoulasghari in laravel#55136
- [12.x] Various URL generation bugfixes by @stancl in laravel#54811
- Add an optional
shouldRunmethod to migrations. by @danmatthews in laravel#55011 - [12.x]
Uriprevent empty query string by @rojtjo in laravel#55146 - [12.x] Only call the ob_flush function if there is active buffer in eventStream by @tonysm in laravel#55141
- [12.x] Add CacheFlushed Event by @tech-wolf-tw in laravel#55142
- [12.x] Update DateFactory method annotations for Carbon v3 compatibility by @kayw-geek in laravel#55151
- [12.x] Improve docblocks for file related methods of InteractsWithInput by @SanderMuller in laravel#55156
- [12.x] Enhance
FileViewFinderdoc-blocks by @imanghafoori1 in laravel#55183 - Support using null-safe operator with
nullvalue by @willrowe in laravel#55175 - [12.x] Fix: Make Paginated Queries Consistent Across Pages by @tomchkk in laravel#55176
- [12.x] Add
pipemethod query builders by @timacdonald in laravel#55171 - [12.x] fix: one of many subquery constraints by @calebdw in laravel#55168
- [12.x] fix(postgres): missing parentheses in whereDate/whereTime for json columns by @saibotk in laravel#55159
- Fix factory creation through attributes by @davidstoker in laravel#55190
- [12.x] Fix Concurrency::run to preserve callback result order by @chaker2710 in laravel#55161
- [12.x] Log: Add optional keys parameter to
Log::withoutContextto remove selected context from future logs by @mattroylloyd in laravel#55181 - [12.x] Add
Expressiontype to param$valueofQueryBuilderhaving()method by @faissaloux in laravel#55200 - [12.x] Add flag to disable where clauses for
withAttributesmethod on Eloquent Builder by @AndrewMast in laravel#55199
v12.3.0 - 2025-03-18
- [12.x] fixes laravel/octane#1010 by @mihaileu in laravel#55008
- Added the missing 'trashed' event to getObservablesEvents() by @duemti in laravel#55004
- [12.x] Enhance PHPDoc for Manager classes with
@param-closure-thisby @kayw-geek in laravel#55002 - [12.x] Fix
PendingRequesttypehints forpost,patch,put,deleteby @cosmastech in laravel#54998 - [12.x] Add test for untested methods in LazyCollection by @mohammadrasoulasghari in laravel#54996
- [12.x] fix indentation by @browner12 in laravel#54995
- [12.x] apply final Pint fixes by @browner12 in laravel#55014
- Enhance validation tests: Add test for connection name detection in Unique rule by @alikhosravidev in laravel#54993
- [12.x] Add json:unicode cast to support JSON_UNESCAPED_UNICODE encoding by @fuwasegu in laravel#54992
- [12.x] Add “Storage Linked” to the
aboutcommand by @adampatterson in laravel#54949 - [12.x] Add support for native JSON/JSONB column types in SQLite Schema builder by @fuwasegu in laravel#54991
- [12.x] Fix
LogManager::configurationFor()typehint by @cosmastech in laravel#55016 - [12.x] Add missing tests for LazyCollection methods by @mohammadrasoulasghari in laravel#55022
- [12.x] Refactor: Structural improvement for clarity by @AhmedAlaa4611 in laravel#55018
- Improve
toKilobytesto handle spaces and case-insensitive units by @alikhosravidev in laravel#55019 - [12.x] Fix mistake in
asJsoncall inHasAttributes.phpthat was recently introduced by @AndrewMast in laravel#55017 - [12.x] reapply Pint style changes by @browner12 in laravel#55015
- Add validation test for forEach with null and empty array values by @alikhosravidev in laravel#55047
- [12.x] Types: EnumeratesValues Sum by @liamduckett in laravel#55044
- [12.x] Ensure Consistent Formatting in Generated Invokable Classes by @AhmedAlaa4611 in laravel#55034
- Add element type to return array in Filesystem by @AJenbo in laravel#55031
- [12.x] Add support for PostgreSQL "unique nulls not distinct" by @thierry2015 in laravel#55025
- [12.x] standardize multiline ternaries by @browner12 in laravel#55056
- [12.x] improved readability for
aliasedPivotColumnsby @browner12 in laravel#55055 - [12.x] remove progress bar from PHPStan output by @browner12 in laravel#55054
- [12.x] Fixes how the fluent Date rule builder handles
date_formatby @AndrewMast in laravel#55052 - Adding SSL encryption and support for MySQL connection by @mdiktushar in laravel#55048
- Revert "Adding SSL encryption and support for MySQL connection" by @taylorotwell in laravel#55057
- Ensure queue property is nullable by @timacdonald in laravel#55058
- [12.x] return
$thisfor chaining by @browner12 in laravel#55060 - [12.x] prefer
new Collectionovercollect()by @browner12 in laravel#55059 - [12.x] use "class-string" type for
usingpivot model by @browner12 in laravel#55053 - [12.x] multiline chaining on Collections by @browner12 in laravel#55061
v12.2.0 - 2025-03-12
- Add dates to allowed PHPDoc types of Builder::having() by @miken32 in laravel#54899
- [11.x] Fix double negative in
whereNotMorphedTo()query by @owenvoke in laravel#54902 - Add test for Arr::partition by @liamduckett in laravel#54913
- [11.x] Expose process checkTimeout method by @mattmcdev in laravel#54912
- [12.x] Compilable for Validation Contract by @peterfox in laravel#54882
- [11.x] Backport "Change
paginate()method return types to\Illuminate\Pagination\LengthAwarePaginator" by @carestad in laravel#54917 - [11.x] Revert faulty change to
EnumeratesValues::ensure()doc block by @axlon in laravel#54919 - Ensure ValidationEmailRuleTest skips tests requiring the intl extension when unavailable by @alikhosravidev in laravel#54918
- ✅ Ensure Enum validation is case-sensitive by adding a new test case. by @alikhosravidev in laravel#54922
- [12.x] Feature: Collection chunk without preserving keys by @liamduckett in laravel#54916
- [12.x] Add test coverage for Uri::withQueryIfMissing method by @mohammadrasoulasghari in laravel#54923
- Fix issue with using RedisCluster with compression or serialization by @rzv-me in laravel#54934
- [12.x] Add test coverage for Str::replaceMatches method by @mohammadrasoulasghari in laravel#54930
- [12.x] Types: Collection chunk without preserving keys by @liamduckett in laravel#54924
- [12.x] Add
ddBodymethod to TestResponse for dumping various response payloads by @Sammyjo20 in laravel#54933 - [11.x] Backport "Fix issue with using
RedisClusterwith compression or serialization" by @rzv-me in laravel#54935 - [12.x] feat: add
CanBeOneOfManysupport toHasOneThroughby @calebdw in laravel#54759 - [12.x] Hotfix - Add function_exists check to ddBody in TestResponse by @Sammyjo20 in laravel#54937
- [12.x] Refactor: Remove unnecessary variables in Str class methods by @mohammadrasoulasghari in laravel#54963
- Add Tests for Str::pluralPascal Method by @mohammadrasoulasghari in laravel#54957
- [12.x] Fix visibility of setUp and tearDown in tests by @naopusyu in laravel#54950
- [12.x] Test Improvements by @crynobone in laravel#54944
- Fix missing return in
assertOnlyInvalidby @parth391 in laravel#54941 - Handle case when migrate:install command is called and table exists by @joe-tito in laravel#54938
- [11.x] Fix callOnce in Seeder so it handles arrays properly by @lbovit in laravel#54985
- Change "exceptoin" spelling mistake to "exception" by @hvlucas in laravel#54979
- [12.x] Add test for after method in LazyCollection by @mohammadrasoulasghari in laravel#54978
- [12.x] Add
incrementanddecrementmethods toContextby @mattmcdev in laravel#54976 - Ensure ExcludeIf correctly rejects a null value as an invalid condition by @alikhosravidev in laravel#54973
- [12.x] apply Pint rule "no_spaces_around_offset" by @browner12 in laravel#54970
- [12.x] apply Pint rule "single_line_comment_style" by @browner12 in laravel#54969
- [12.x] do not use mix of newline and inline formatting by @browner12 in laravel#54967
- [12.x] use single indent for multiline ternaries by @browner12 in laravel#54971
v12.1.1 - 2025-03-05
- [11.x] Add valid values to ensure method by @lancepioch in laravel#54840
- Fix attribute name used on
Validatorinstance within certain rule classes by @crynobone in laravel#54845 - [11.x] Fix
Application::interBasePath()fails to resolve application when project name is "vendor" by @crynobone in laravel#54871 - [11.x] Test improvements by @crynobone in laravel#54879
- [12.x] DocBlock: Changed typehint for
Arr::partitionmethod by @AndrewMast in laravel#54896 - Enhance Email and Image Dimensions Validation Tests by @alikhosravidev in laravel#54897
- [12.x] Apply default styling rules to the notification stub by @ahinkle in laravel#54895
v12.1.0 - 2025-03-04
- [12.x] Test Improvements by @crynobone in laravel#54782
- [12.x] Fix incorrect typehints in
BuildsWhereDateClausestraits by @mohprilaksono in laravel#54784 - [12.x] Improve queries readablility by @hafezdivandari in laravel#54791
- [12.x] Enhance eventStream to Support Custom Events and Start Messages by @devhammed in laravel#54776
- [12.x] Make the PendingCommand class tappable. by @kevinb1989 in laravel#54801
- [12.x] Add missing union type in event stream docblock by @devhammed in laravel#54800
- Change return types of
paginage()methods to\Illuminate\Pagination\LengthAwarePaginatorby @carestad in laravel#54826 - [12.x] Check if internal
Hasher::verifyConfiguration()method exists on driver before forwarding call by @rodrigopedra in laravel#54833 - [11.x] Fix using
AsStringablecast on Notifiable's key by @crynobone in laravel#54818 - Add Tests for Handling Null Primary Keys and Special Values in Unique Validation Rule by @alikhosravidev in laravel#54823
- Improve docblock for with() method to clarify it adds to existing eag… by @igorlealantunes in laravel#54838
- [12.x] Fix dropping schema-qualified prefixed tables by @hafezdivandari in laravel#54834
- [12.x] Add
Context::scope()by @cosmastech in laravel#54799 - Allow Http requests to be recorded without requests being faked by @kemp in laravel#54850
- [12.x] Adds a new method "getRawSql" (with embedded bindings) to the QueryException class by @erickcomp in laravel#54849
- Update Inspiring.php by @ju-gow in laravel#54846
- [12.x] Correct use of named argument in
Datefacade and fix a return type. by @lmottasin in laravel#54847 - Add additional tests for Rule::array validation scenarios by @alikhosravidev in laravel#54844
- [12.x] Remove return statement by @mohprilaksono in laravel#54842
- Fix typos by @co63oc in laravel#54839
- [12.x] Do not loop through middleware when excluded is empty by @cosmastech in laravel#54837
- Add test for Arr::reject method in Illuminate Support by @mohammadrasoulasghari in laravel#54863
- [12.x] Feature: Array partition by @liamduckett in laravel#54859
- [12.x] Introduce
ContextLogProcessorby @cosmastech in laravel#54851
v12.0.1 - 2025-02-24
v12.0.0 - 2025-02-24
- [12.x] Prep Laravel v12 by @driesvints in laravel#50406
- [12.x] Make
Str::is()match multiline strings by @SjorsO in laravel#51196 - [12.x] Use native MariaDB CLI commands by @staudenmeir in laravel#51505
- [12.x] Adds missing streamJson() to ResponseFactory contract by @wilsenhc in laravel#51544
- [12.x] Preserve numeric keys on the first level of the validator rules by @Tofandel in laravel#51516
- [12.x] Test Improvements by @crynobone in laravel#52248
- [12.x] mergeIfMissing allows merging with nested arrays by @KIKOmanasijev in laravel#52242
- [12.x] Fix chunked queries not honoring user-defined limits and offsets by @tonysm in laravel#52093
- [12.x] Replace md5 with much faster xxhash by @GrahamCampbell in laravel#52301
- [12.x] Switch models to UUID v7 by @staudenmeir in laravel#52433
- [12.x] Improved algorithm for Number::pairs() by @hotmeteor in laravel#52641
- Removed Duplicated Prefix on DynamoDbStore.php by @felipehertzer in laravel#52986
- [12.x] feat: configure default datetime precision on per-grammar basis by @calebdw in laravel#51821
- [12.x] Test Improvements by @crynobone in laravel#53150
- [12.x] Fix laravel/prompt dependency version constraint for illuminate/console by @wouterj in laravel#53146
- [12.x] Add generic return type to Container::instance() by @axlon in laravel#53161
- Map output of concurrecy calls to the index of the input by @ovp87 in laravel#53135
- Change Composer hasPackage to public by @buihanh2304 in laravel#53282
- [12.x] force
Eloquent\Collection::partitionto return a baseCollectionby @browner12 in laravel#53304 - [12.x] Better support for multi-dbs in the
RefreshDatabasetrait by @tonysm in laravel#53231 - [12.x] Validate UUID's version optionally by @shaedrich in laravel#53341
- [12.x] Validate UUID version 2 and max by @shaedrich in laravel#53368
- [12.x] Add step parameter to LazyCollection range method by @Ashot1995 in laravel#53473
- [12.x] Test Improvements by @crynobone in laravel#53524
- [12.x] Avoid breaking change
RefreshDatabase::usingInMemoryDatabase()by @crynobone in laravel#53587 - [12.x] fix: container resolution order when resolving class dependencies by @calebdw in laravel#53522
- [12.x] Change the default for scheduled command
emailOutput()to only send email if output exists by @onlime in laravel#53774 - [12.x] Add
hasMorePages()toCursorPaginatorcontract by @KennedyTedesco in laravel#53762 - [12.x] modernize
DatabaseTokenRepositoryand make consistent withCacheTokenRepositoryby @browner12 in laravel#53746 - [12.x] chore: remove support for Carbon v2 by @calebdw in laravel#53825
- [12.x] use promoted properties for Auth events by @browner12 in laravel#53847
- [12.x] use promoted properties for Database events by @browner12 in laravel#53848
- [12.x] use promoted properties for Console events by @browner12 in laravel#53851
- [12.x] use promoted properties for Mail events by @browner12 in laravel#53852
- [12.x] use promoted properties for Notification events by @browner12 in laravel#53853
- [12.x] use promoted properties for Routing events by @browner12 in laravel#53854
- [12.x] use promoted properties for Queue events by @browner12 in laravel#53855
- [12.x] Restore database token repository property documentation by @shaedrich in laravel#53908
- [12.x] Use reject() instead of a negated filter() by @shaedrich in laravel#53925
- [12.x] Use first-class callable syntax to improve static analysis by @shaedrich in laravel#53924
- [12.x] add type declarations for Console Events by @browner12 in laravel#53947
- [12.x] use type declaration on property by @browner12 in laravel#53970
- [12.x] Update Symfony and PHPUnit dependencies by @crynobone in laravel#54019
- [12.x] Allow
when()helper to accept Closure condition parameter by @ziadoz in laravel#54005 - [12.x] Add test for collapse in collections by @amirmohammadnajmi in laravel#54032
- [12.x] Add test for benchmark utilities by @amirmohammadnajmi in laravel#54055
- [12.x] Fix once() cache when used in extended static class by @FrittenKeeZ in laravel#54094
- [12.x] Ignore querystring parameters using closure when validating signed url by @gdebrauwer in laravel#54104
- Make
dropForeignIdFormethod complementary toforeignIdForby @willrowe in laravel#54102 - Allow scoped disks to be scoped from other scoped disks by @willrowe in laravel#54124
- [12.x] Add test for Util::getParameterClassName() by @amirmohammadnajmi in laravel#54209
- Improve eloquent attach parameter consistency by @fabpl in laravel#54225
- [12.x] Enhance multi-database support by @hafezdivandari in laravel#54274
- [12.x] Fix Session's
getCookieExpirationDateincompatibility with Carbon 3 by @crynobone in laravel#54313 - [12.x] Update minimum PHPUnit versions by @crynobone in laravel#54323
- [12.x] Prevent XSS vulnerabilities by excluding SVGs by default in image validation by @SanderMuller in laravel#54331
- [12.x] Convert interfaces from docblock to method by @crynobone in laravel#54348
- [12.x] Validate paths for UTF-8 characters by @Jubeki in laravel#54370
- [12.x] Fix aggregate alias when using expression by @iamgergo in laravel#54418
- Added flash method to Session interface to fix IDE issues by @eldair in laravel#54421
- Adding the withQueryString method to the paginator interface. by @dvlpr91 in laravel#54462
- [12.x] feat: --memory=0 should mean skip memory exceeded verification (Breaking Change) by @mathiasgrimm in laravel#54393
- Auto-discover nested policies following conventional, parallel hierarchy by @jasonmccreary in laravel#54493
- [12.x] Reintroduce PHPUnit 10.5 supports by @crynobone in laravel#54490
- [12.x] Allow limiting bcrypt hashing to 72 bytes to prevent insecure hashes. by @waxim in laravel#54509
- [12.x] Fix accessing
Connectionproperty inGrammarclasses by @hafezdivandari in laravel#54487 - [12.x] Configure connection on SQLite connector by @hafezdivandari in laravel#54588
- [12.x] Introduce Job@resolveQueuedJobClass() by @cosmastech in laravel#54613
- [12.x] Bind abstract from concrete's return type by @peterfox in laravel#54628
- [12.x] Query builder PDO fetch modes by @bert-w in laravel#54443
- [12.x] Fix Illuminate components
composer.jsonby @crynobone in laravel#54700 - [12.x] Bump minimum
brick/mathby @crynobone in laravel#54694 - [11.x] Fix parsing
PHP_CLI_SERVER_WORKERSasstringinstead ofintby @crynobone in laravel#54724 - [11.x] Rename Redis parse connection for cluster test method to follow naming conventions by @jackbayliss in laravel#54721
- [11.x] Allow
readAtmethod to use in database channel by @utsavsomaiya in laravel#54729 - [11.x] Fix: Custom Exceptions with Multiple Arguments does not properly rein… by @pandiselvamm in laravel#54705
- [11.x] Update ConcurrencyTest exception reference to use namespace by @jackbayliss in laravel#54732
- [11.x] Deprecate
Factory::$modelNameResolverby @samlev in laravel#54736 - Update
config/app.phpto reflect laravel/laravel change for compatibility by @askdkc in laravel#54752 - [11x.] Improved typehints for
InteractsWithDatabaseby @cosmastech in laravel#54748 - [11.x] Improved typehints for
InteractsWithExceptionHandling&&ExceptionHandlerFakeby @cosmastech in laravel#54747 - Add Env::extend to support custom adapters when loading environment variables by @andrii-androshchuk in laravel#54756
- [12.x] Sync
filesystem.disk.localconfigurations by @crynobone in laravel#54764