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:seed
command prohibitable by @spawnia in laravel#55238 - [12.x] Introducing
Rules\Password::appliedRules
Method 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:rollback
in 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
Expression
type to param$value
ofQueryBuilder
orHaving()
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
AsHtmlString
cast by @ralphjsmit in laravel#55071 - [12.x] Add
Arr::sole()
method by @ralphjsmit in laravel#55070 - Improve warning message in
ApiInstallCommand
by @sajjadhossainshohag in laravel#55081 - [12.x] use already determined
related
property 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
@return
docblocks 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 Collection
overCollection::make
by @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
whereNull
andwhereNotNull
toAssertablejson
by @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
shouldRun
method to migrations. by @danmatthews in laravel#55011 - [12.x]
Uri
prevent 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
FileViewFinder
doc-blocks by @imanghafoori1 in laravel#55183 - Support using null-safe operator with
null
value by @willrowe in laravel#55175 - [12.x] Fix: Make Paginated Queries Consistent Across Pages by @tomchkk in laravel#55176
- [12.x] Add
pipe
method 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::withoutContext
to remove selected context from future logs by @mattroylloyd in laravel#55181 - [12.x] Add
Expression
type to param$value
ofQueryBuilder
having()
method by @faissaloux in laravel#55200 - [12.x] Add flag to disable where clauses for
withAttributes
method 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-this
by @kayw-geek in laravel#55002 - [12.x] Fix
PendingRequest
typehints forpost
,patch
,put
,delete
by @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
about
command 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
toKilobytes
to handle spaces and case-insensitive units by @alikhosravidev in laravel#55019 - [12.x] Fix mistake in
asJson
call inHasAttributes.php
that 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
aliasedPivotColumns
by @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_format
by @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
$this
for chaining by @browner12 in laravel#55060 - [12.x] prefer
new Collection
overcollect()
by @browner12 in laravel#55059 - [12.x] use "class-string" type for
using
pivot 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
ddBody
method to TestResponse for dumping various response payloads by @Sammyjo20 in laravel#54933 - [11.x] Backport "Fix issue with using
RedisCluster
with compression or serialization" by @rzv-me in laravel#54935 - [12.x] feat: add
CanBeOneOfMany
support toHasOneThrough
by @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
assertOnlyInvalid
by @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
increment
anddecrement
methods toContext
by @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
Validator
instance 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::partition
method 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
BuildsWhereDateClauses
traits 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\LengthAwarePaginator
by @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
AsStringable
cast 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
Date
facade 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
ContextLogProcessor
by @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::partition
to return a baseCollection
by @browner12 in laravel#53304 - [12.x] Better support for multi-dbs in the
RefreshDatabase
trait 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()
toCursorPaginator
contract by @KennedyTedesco in laravel#53762 - [12.x] modernize
DatabaseTokenRepository
and make consistent withCacheTokenRepository
by @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
dropForeignIdFor
method complementary toforeignIdFor
by @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
getCookieExpirationDate
incompatibility 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
Connection
property inGrammar
classes 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.json
by @crynobone in laravel#54700 - [12.x] Bump minimum
brick/math
by @crynobone in laravel#54694 - [11.x] Fix parsing
PHP_CLI_SERVER_WORKERS
asstring
instead ofint
by @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
readAt
method 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::$modelNameResolver
by @samlev in laravel#54736 - Update
config/app.php
to reflect laravel/laravel change for compatibility by @askdkc in laravel#54752 - [11x.] Improved typehints for
InteractsWithDatabase
by @cosmastech in laravel#54748 - [11.x] Improved typehints for
InteractsWithExceptionHandling
&&ExceptionHandlerFake
by @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.local
configurations by @crynobone in laravel#54764