Laravel Versions Logo

Laravel Version: 9.0.0

Status:

Not receiving bug or security fixes

Recommendation:

Update at least to a security-maintained version as soon as possible!
The lowest version still getting security fixes is: 10
To upgrade, follow the instructions in the docs or use Laravel Shift to upgrade automatically.

Latest Patch Release:

9.52.16

Major Version Release date Bug Fixes Until Security Fixes Until PHP Versions Status
9 February 8, 2022 August 8, 2023 February 6, 2024 8.0, 8.1, 8.2, (8.3)
EOL

Releases

9.52.16
9.52.15
9.52.14

What's Changed

  • [9.x] Circumvent PHP 8.2.9 date format bug that makes artisan serve crash by @levu42 in #47931

Full Changelog: v9.52.13...v9.52.14

9.52.13

No changelog available.

9.52.12

No changelog available.

9.52.11
9.52.10
9.52.9
9.52.8

Fixed

  • Fixed escaped String for JSON_CONTAINS (#47244)

Changed

  • Send along value to InvalidPayloadException (#47223)
9.52.7

Changed

  • Make rules method in FormRequest optional (#46846)
9.52.6

Fixed

  • Fixed Cache::spy incompatibility with Cache::get (#46689)

Changed

  • Remove unnecessary parameters in creatable() and destroyable() methods in Illuminate/Routing/PendingSingletonResourceRegistration class (#46677)
  • Allow Event::assertListening to check for invokable event listeners (#46683)
  • Return non-zero exit code for uncaught exceptions (#46541)
  • Release lock for job implementing ShouldBeUnique that is dispatched afterResponse() (#46806)
9.52.5

Fixed

  • Fixed Illuminate/Foundation/Testing/Concerns/InteractsWithDatabase::expectsDatabaseQueryCount() $connection parameter (#46228)
  • PHP 8.0 fix for Closure jobs (#46505)
  • Fix preg_split error when there is a slash in the attribute (#46549)

Changed

  • Allow WithFaker to be used when app is not bound (#46529)
9.52.4

Fixed

  • Fixes constructable migrations (#46223)
9.52.3

Reverted

  • Revert changes from Arr::random() (cf3eb90)
9.52.2

Fixed

  • Fixed Illuminate/Collections/Arr::shuffle() with empty array (0c6cae0)
9.52.1

Changed

  • Use secure randomness in Arr:random and Arr:shuffle (#46105)
9.52.0

Added

  • Added methods to Enumerable contract (#46021)
  • Added new mailer transport for AWS SES V2 API (#45977)
  • Add S3 temporaryUploadUrl method to AwsS3V3Adapter (#45753)
  • Add index hinting support to query builder (#46063)
  • Add mailer name to data for SentMessage and MessageSending events (#46079)
  • Added --pending option to migrate:status (#46089)

Fixed

  • Fixed pdo exception when rollbacking without active transaction (#46017)
  • Fix duplicated columns on select (#46049)
  • Fixes memory leak on anonymous migrations (№46073)
  • Fixed race condition in locks issued by the file cache driver (#46011)

Changed

  • Allow choosing tables to truncate in Illuminate/Foundation/Testing/DatabaseTruncation::truncateTablesForConnection() (#46025)
  • Update afterPromptingForMissingArguments method (#46052)
  • Accept closure in bus assertion helpers (#46075)
  • Avoid mutating the $expectedLitener between loops on Event::assertListening (#46095)
9.51.0

Added

  • Added Illuminate/Foundation/Testing/Concerns/InteractsWithDatabase::expectsDatabaseQueryCount() (#45932)
  • Added pending has-many-through and has-one-through builder (#45894)
  • Added Illuminate/Http/Client/PendingRequest::withUrlParameters() (#45982)

Fixed

  • Fix: prevent duplicated content-type on HTTP client (#45960)
  • Add missing php extensions in composer (#45941)

Changed

  • Command schedule:work minor features: schedule:run output file & environment specific verbosity (#45949)
  • Added missing self reserved word to reservedNames array in Illuminate/Console/GeneratorCommand.php (#46001)
  • pass value along to ttl callback in Illuminate/Cache/Repository::remember() (#46006)
  • Make sure the lock_connection is used for schedule's withoutOverlapping() (#45963)
9.50.2

Fixed

  • Fixed missing_with and missing_with_all validation (#45913)
  • Fixes blade escaped tags issue (#45928)

Changed

  • Trims numeric validation values / parameters (#45912)
  • Random function doesn't generate evenly distributed random chars (#45916)
9.50.1

Reverted

Changed

  • Allow scheme to be specified in Illuminate/Mail/MailManager::createSmtpTransport() (68a8bfc)
  • Accept optional mode in Illuminate/Filesystem/Filesystem::replace() (2664e7f)
9.50.0

Added

  • Added Illuminate/Translation/Translator::stringable() (#45874)
  • Added Illuminate/Foundation/Testing/DatabaseTruncation (#45726)
  • Added @Style Blade directive (#45887)

Reverted

Fixed

  • Fixed LazyCollection::makeIterator() to accept non Generator Function (#45881)

Changed

  • Solve data to be dumped for separate schemes (#45805)
9.49.0

Added

  • Added Illuminate/Database/Schema/ForeignKeyDefinition::noActionOnDelete() (#45712)
  • Added new throw helper methods to the HTTP Client (#45704)
  • Added configurable timezone support for WorkCommand output timestamps (#45722)
  • Added support for casting arrays containing enums (#45621)
  • Added "missing" validation rules (#45717)
  • Added /Illuminate/Database/Eloquent/SoftDeletes::forceDeleteQuietly() (#45737)
  • Added Illuminate/Collections/Arr::sortDesc() (#45761)
  • Added CLI Prompts (#45629, #45864)
  • Adds assertJsonIsArray and assertJsonIsObject for TestResponse (#45731)
  • Added Illuminate/Database/Eloquent/Relations/HasOneOrMany::createQuietly() (#45783)
  • Add validation rules: ascii_alpha, ascii_alpha_num, ascii_alpha_dash (#45769)
  • Extract status methods to traits (#45789)
  • Add "addRestoreOrCreate" extension to SoftDeletingScope (#45754)
  • Added connection established event (f850d99)
  • Add forceDeleting event to models (#45836)
  • Add title tag in mail template (#45859)
  • Added new methods to Collection (#45839)
  • Add skip cancelled middleware (#45869)

Fixed

  • Fix flushdb on cluster for PredisClusterConnection.php (#45544)
  • Fix blade tag issue with nested calls (#45764)
  • Fix infinite loop in blade compiler (#45780)
  • Fix ValidationValidator not to accept terminating newline (#45790)
  • Fix stubs publish command generating incorrect controller stubs (#45812)
  • fix: normalize route pipeline exception (#45817)
  • Fix Illuminate Filesystem replace() leaves file executable (#45856)

Changed

  • Ensures channel name matches from start of string (#45692)
  • Replace raw invisible characters in regex expressions with counterpart Unicode regex notations (#45680)
  • Optimize destroy method (#45709)
  • Unify prohibits behavior around prohibits_if (#45723)
  • Removes dependency on bcmath (#45729)
  • Allow brick/math 0.11 also (#45762)
  • Optimize findMany of BelongsToMany (#45745)
  • Ensure decimal rule handles large values (#45693)
  • Backed enum support for @js (#45862)
  • Restart syscalls for SIGALRM when worker times out a job (#45871)
  • Ensure subsiquent calls to Mailable->to() overwrite previous entries (#45885)
9.48.0

Added

  • Added Illuminate/Database/Schema/Builder::withoutForeignKeyConstraints() (#45601)
  • Added fragments() \ fragmentIf() \ fragmentsIf() methods to Illuminate/View/View.php class (#45656, #45669)
  • Added incrementEach() and decrementEach() to Illuminate/Database/Query/Builder (#45577)
  • Added ability to drop an index when modifying a column (#45513)
  • Allow to set HTTP client for mailers (#45684)
  • Added 402 exception view (#45682)
  • Added notFound() helper to Http Client response (#45681)

Fixed

Changed

  • Ignore whitespaces/newlines when finding relations in model:show command (#45608)
  • Fail queued job with a string messag (#45625)
  • Allow fake() helper in unit tests (#45624)
  • allow egulias/email-validator v4 (#45649)
  • Force countBy method in EloquentCollection to return base collection (#45663)
  • Allow for the collection of stubs to be published (#45653)
9.47.0

Added

  • Added Support Lazy Collections in BatchFake::add() (#45507)
  • Added Decimal to list of Numeric rules (#45533)
  • Added Illuminate/Routing/PendingSingletonResourceRegistration::destroyable() (#45549)
  • Added setVisible and setHidden to Eloquent Collection (#45558)

Fixed

  • Fix bound method contextual binding (#45500)
  • Fixed Method explodeExplicitRule with regex rule (#45555)
  • Fixed Illuminate/Database/Query/Builder::whereIntegerInRaw() (#45584)
  • Fixes blade tags (#45490)

Changed

  • Return model when casting attribute (#45539)
  • always show full path to migration in Illuminate/Database/Console/Migrations/MigrateMakeCommand.php (9f6ff48)
  • Remove index name when adding primary key on MySQL (#45515)
9.46.0

Added

  • Added Passthrough PATH variable to serve command (#45402)
  • Added whenHas to JsonResource (#45376)
  • Added ./fleet directory to .gitignore (#45432)
  • Added unless to JsonResource (#45419)

Fixed

  • Fixed credentials check (#45437)
  • Fixed decimal cast precision issue (#45456, #45492)
  • Precognitive validation with nested arrays doesn't throw validation error (#45405)
  • Fixed issue on which class to check increment and decrement methods for custom cast (#45444)

Changed

  • Update decimal validation rule to allow validation of signed numbers (24a48b2)
  • Output only unique asset / preload tags in Vite (#45404)
  • Optimize whereKey method in Query Builder (#45453)
  • Remove extra code in Model.php to optimize performance (#45476)
  • Exception Handler prepareResponse add previous Exception (#45499)
9.45.1

Revert

  • Revert "fix single line @php statements to not be parsed as php blocks" (#45389)

Changed

  • Load schema to in memory database (#45375)
9.45.0

Added

  • Allows the registration of custom, root-level anonymous component search paths. (#45338, 1ff0379)
  • Added decimal validation rule (#45356, e89b2b0)
  • Added align property to button mail component (#45362)
  • Added whereUlid(param) support for routing (#45372)

Fixed

  • Fixed single line @php statements to not be parsed as php blocks in BladeCompiler (#45333)
  • Added missing code to set locale from model preferred locale in Maillable (#45308)

Changed

  • Vite: ability to prevent preload tag generation from attribute resolver callback (#45283)
  • Deprecation Test Improvements (#45317)
  • Do not allow nested arrays in whereIn method (140c3a8)
  • Bump ramsey/uuid (#45367)
9.44.0

Added

  • Added Illuminate/Auth/GuardHelpers::forgetUser() (#45208)
  • Added sort option for schedule:list (#45198)
  • Added ascii and ulid validation rules (#45218)
  • Http client - allow to provide closure as "throwif" condition (#45251)
  • Support '/' as a possible column name in database (#45268)
  • Added Granular notifications queue connections (#45264)
  • Add support for native rename/drop column commands (#45258)
  • Add $encoding parameter to substr method (#45300)
  • Use Macroable in Session facade (#45310)

Fixed

  • Fixed aliasing with cursor pagination (#45188)
  • Fixed email verification request (#45227)
  • Return 500 http error, instead of 200, when dotenv fails to load (#45235)
  • Fixed bug on Job Batchs Table (#45263)
  • Fixed schedule:list crash when call() is given class-string (#45306)
  • Fixed Lack of Memory when failing a job with wrong variable passed on the method fail() (#45291)
  • Fixed errors occurring when encrypted cookies has been tampered with (#45313)
  • bug fix, change array_merge to array_replace to prevent reindex (#45309)

Changed

  • Allow BusFake to use custom BusRepository (#45202)
  • Improved error logging for unmatched routes and route not found (#45206)
  • Improve assertSeeText and assertDontSeeText test methods (#45274)
  • Improved Illuminate/Auth/SessionGuard::clearUserDataFromStorage() (#45305)
  • Allows shouldIgnoresDeprecationError() to be overriden (#45299)
9.43.0

Added

  • Add support for eager loading specific columns to withWhereHas (#45168)
  • Add Policies to Model Show Command (#45153)
  • Added Illuminate/Support/Stringable::whenIsUlid() (#45183)

Fixed

  • Added missing reserved names in GeneratorCommand (#45149)

Changed

  • Allow to pass base64 key to env:encrypt command (#45157)
  • Replace model:show searched value with correct FQCN (#45160)
9.42.2

Changed

  • Improved stubs and Illuminate/Routing/ResourceRegistrar::getResourceMethods() (6ddf3b0)
9.42.1

Revert

  • Revert "[9.x] Create new Json ParameterBag Instance when cloning Request" (#45147)

Fixed

  • Mailable : fixes strict comparison with int value (#45138)
  • Address Dynamic Relation Resolver inconsiency issue with extended Models (#45122)
9.42.0

Added

  • Added --rest option to queue:listen (00a12e2, 82fde9e)
  • Added Illuminate/Support/Stringable::isUlid() (#45100)
  • Add news report_if and report_unless helpers functions (#45093)
  • Add callback to resolve custom mutex name of schedule events (#45126)
  • Add WorkOptions to WorkerStopping Event (#45120)
  • Added singleton and creatable options to Illuminate/Routing/Console/ControllerMakeCommand (#44872)

Fixed

  • Fix pure enums validation (#45121)
  • Prevent test issues with relations with the $touches property (#45118)
  • Fix factory breaking when trying to determine whether a relation is empty (#45135)

Changed

  • Allow set command description via AsCommand attribute (#45117)
  • Updated Mailable to prevent duplicated recipients (#45119)
9.41.0

Added

  • Added Illuminate/Validation/Rules/DatabaseRule::onlyTrashed() (#44989)
  • Add some class rules in class Rule (#44998)
  • Added Illuminate/View/ComponentAttributeBag::missing() (#45016)
  • Added Illuminate/Http/Concerns/InteractsWithInput::whenMissing() (#45019)
  • Add isolation levels to SQL Server Connector (#45023)
  • Fix php artisan serve with PHP_CLI_SERVER_WORKERS > 1 (#45041)
  • Add ability to prune cancelled job batches (#45034)
  • Adding option for custom manifest filename on Vite Facade (#45007)

Fixed

  • Fix deprecation warning when comparing a password against a NULL database password (#44986, 206e465)
  • Outlook web dark mode email layout fix (#45024)

Changed

  • Improves queue:work command output (#44971)
  • Optimize Collection::containsStrict (#44970)
  • Make name required in Illuminate/Testing/TestResponse::assertRedirectToRoute() (98a0301)
  • Strip key, secret and token from root config options on aws clients (#44979)
  • Allow customised implementation of the SendQueuedMailable job (#45040)
  • Validate uuid before route binding query (#44945)
9.40.1

Added

  • Illuminate/Support/Lottery::fix() (7bade4f)
9.40.0

Added

  • Include Eloquent Model Observers in model:show command (#44884)
  • Added "lowercase" validation rule (#44883)
  • Introduce Lottery class (#44894)
  • Added /Illuminate/Testing/TestResponse::assertRedirectToRoute() (#44926)
  • Add uppercase validation rule (#44918)
  • Added saveManyQuietly to the hasOneOrMany and belongsToMany relations (#44913)

Fixed

  • Fix HasAttributes::getMutatedAttributes for classes with constructor args (#44829)

Changed

  • Remove argument assignment for console (#44888)
  • Pass $maxExceptions from mailable to underlying job when queuing (#44903)
  • Make Vite::isRunningHot public (#44900)
  • Add method to be able to override the exception context format (#44895)
  • Add zero-width space to trimmed characters in TrimStrings middleware (#44906)
  • Show error if key:generate artisan command fails (#44927)
  • Update database version check for lock popping for PlanetScale (#44925)
  • Move function withoutTrashed into DatabaseRule (#44938)
  • Use write connection on Schema::getColumnListing() and Schema::hasTable() for MySQL and PostgreSQL (#44946)
9.39.0

Added

  • Added template fragments to Blade (#44774)
  • Added source file to Collection's dd method output (#44793, d2e0e85)
  • Added Illuminate/Support/Testing/Fakes/PendingBatchFake::dispatchAfterResponse() (#44815)
  • Added Illuminate/Foundation/Testing/Concerns/InteractsWithDatabase::assertDatabaseEmpty() (#44810)

Fixed

  • Fixed InteractsWithContainer::withoutMix() (#44822)

Changed

  • Update UpCommand::handle that must return int (#44807)
  • Decouple database component from console component (#44798)
  • Improve input argument parsing for commands (#44662, #44826)
  • Added DatabaseBatchRepository to provides() in BusServiceProvider (#44833)
  • Move reusable onNotSuccessfulTest functionality to TestResponse (#44827)
  • Add CSP nonce to Vite reactRefresh inline script (#44816)
  • Allow route group method to be chained (#44825)
  • Remove __sleep() & __wakeup() from SerializesModels trait. (#44847)
  • Handle SQLite without ENABLE_DBSTAT_VTAB enabled in Illuminate/Database/Console/DatabaseInspectionCommand::getSqliteTableSize() (#44867)
  • Apply force flag when necessary in Illuminate/Queue/Listener (#44862)
  • De-couple Console component from framework (#44864)
  • Update Vite mock to return empty array for preloadedAssets (#44858)
9.38.0

Added

  • Added Illuminate/Routing/Route::flushController() (#44393)
  • Added Illuminate/Session/Store::setHandler() (#44736)
  • Added dictionary to slug helper (#44730)
  • Added ability to set middleware based on notifiable instance and channel (#44767)
  • Added touchQuietly convenience method to Model (#44722)
  • Added Illuminate/Routing/Router::removeMiddlewareFromGroup() (#44780)
  • Allow queueable notifications to set maxExceptions (#44773)
  • Make migrate command isolated (#44743, ac3252a)

Fixed

  • Fixed whenPivotLoaded(As) api resource methods when using Eloquent strict mode (#44792)
  • Fixed components view error when using $attributes in parent view (#44778)
  • Fixed problem with disregarding global scopes when using existOr and doesntExistOr methods on model query (#44795)

Changed

  • Recompiles views when necessary (#44737)
  • Throw meaningful exception when broadcast connection not configured (#44745)
  • Prevents booting of providers when running env:encrypt (#44758)
  • Added nonce for preloaded assets (#44747)
  • Inherit crossorigin attributes while preloading view (#44800)
9.37.0

Added

  • Added optional verbose output when view caching (#44673)
  • Allow passing closure to rescue $report parameter (#44710)
  • Support preloading assets with Vite (#44096)
  • Added Illuminate/Mail/Mailables/Content::htmlString() (#44703)

Fixed

  • Fixed model:show registering getAttribute() as a null accessor (#44683)
  • Fix expectations for output assertions in PendingCommand (#44723)
9.36.4

Added

  • Added rawValue to Database Query Builder (and Eloquent as wrapper) (#44631)
  • Added TransactionCommitting (#44608)
  • Added dontIncludeSource to CliDumper and HtmlDumper (#44623)
  • Added Illuminate/Filesystem/FilesystemAdapter::checksum() (#44660)
  • Added handlers for silently discarded and missing attribute violations (#44664)

Reverted

Changed

  • Create new Json ParameterBag Instance when cloning Request (#44671)
  • Prevents booting providers when running env:decrypt (#44654)
9.36.3

Reverted

  • Reverts micro-optimization on view events (#44653)

Fixed

  • Fixes blade not forgetting compiled views on view:clear (#44643)
  • Fixed Illuminate/Database/Eloquent/Model::offsetExists() (#44642)
  • Forget component's cache and factory between tests (#44648)

Changed

  • Bump Testbench dependencies (#44651)
9.36.2

Fixed

  • Ensures view creators and composers are called when * is present (#44636)
9.36.1

Fixed

  • Fixes livewire components that were using createBladeViewFromString (#pull)
9.36.0

Added

  • Added mailable assertions (#44563)
  • Added Illuminate/Testing/TestResponse::assertContent() (#44580)
  • Added to Illuminate/Console/Concerns/InteractsWithIO::alert() $verbosity param (#44614)

Optimization

  • Makes blade components blazing fast (#44487)

Fixed

  • Fixed Illuminate/Filesystem/Filesystem::relativeLink() (#44519)
  • Fixed for model:show failing with models that have null timestamp columns (#44576)
  • Allow Model::shouldBeStrict(false) to disable "strict mode" (#44627)

Changed

  • Dont require a host for sqlite connections in php artisan db (#44585)
  • Let MustVerifyEmail to be used on models without id as primary key (#44613)
  • Changed Illuminate/Routing/Route::controllerMiddleware() (#44590)
9.35.1

Fixed

  • Remove check for $viewFactory->exists($component) in Illuminate/View/Compilers/ComponentTagCompiler::componentClass (7c6db00)
9.35.0

Added

  • Allow loading trashed models for resource routes (#44405)
  • Added Illuminate/Database/Eloquent/Model::shouldBeStrict() and other (#44283)
  • Controller middleware without resolving controller (#44516)
  • Alternative Mailable Syntax (#44462)

Fixed

  • Fix issue with aggregates (withSum, etc.) for pivot columns on self-referencing many-to-many relations (#44286)
  • Fixes issue using static class properties as blade attributes (#44473)
  • Traversable should have priority over JsonSerializable in EnumerateValues (#44456)
  • Fixed make:cast --inbound so it's a boolean option, not value (#44505)

Changed

  • Testing methods. Making error messages with json_encode more readable (#44397)
  • Have 'Model::withoutTimestamps()' return the callback's return value (#44457)
  • only load trashed models on relevant routes (#44478)
  • Adding additional PHP extensions to shouldBlockPhpUpload Function (#44512)
  • Register cutInternals casters for particularly noisy objects (#44514)
  • Use get methods to access application locale (#44521)
  • return only on non empty response from channels (09d53ee, 3944a3e)
  • Correct channel matching (#44531)
  • Migrate mail components (#44527)
9.34.0

Added

  • Short attribute syntax for Self Closing Blade Components (#44413)
  • Adds support for PHP's BackedEnum to be "rendered" on blade views (#44445)

Fixed

  • Fixed Precognition headers for Symfony responses (#44424)
  • Allow to create databases with dots (#44436)
  • Fixes dd source on windows (#44451)

Changed

  • Adds error output to db command when missing host (#44394)
  • Changed Illuminate/Database/Schema/ForeignIdColumnDefinition::constrained() (#44425)
  • Allow maintenance mode events to be listened to in closure based listeners (#44417)
  • Allow factories to recycle multiple models of a given typ (#44328)
  • Improves dd clickable link on multiple editors and docker environments (#44406)
9.33.0

Added

  • Added Illuminate/Support/Testing/Fakes/MailFake::cc() (#44319)
  • Added Ignore Case of Str::contains and Str::containsAll to Stringable contains and containsAll (#44369)
  • Added missing morphs methods for the ULID support (#44364)
  • Introduce Laravel Precognition (#44339)
  • Added Illuminate/Routing/Route::flushController() (#44386)

Fixed

  • Fixes memory leak on PHPUnit's Annotations registry (#44324, #44336)
  • Fixed Illuminate/Filesystem/FilesystemAdapter::url() with config prefix (#44330)
  • Fixed the "Implicit conversion from float to int loses precision" error in Timebox Class (#44357)

Changed

  • Improves dd source on compiled views (#44347)
  • Only prints source on dd calls from dump.php (#44367)
  • Ensures a Carbon version that supports PHP 8.2 (#44374)
9.32.0

Added

  • New env:encrypt and env:decrypt commands (#44034)
  • Share WithoutOverlapping key across jobs (#44227)
  • Add missing citext type mapping to Illuminate/Database/Console/DatabaseInspectionCommand::$typeMappings (#44237)
  • Short attribute syntax for Blade Components (#44217)
  • Adds source file to dd function output (#44211)
  • Add methods to get request data as integer or float (#44239)
  • Adds Eloquent User Provider query handler (#44226)
  • Added Illuminate/Support/Testing/Fakes/BusFake::dispatchFakeBatch() (#44176)
  • Added methods to cast Stringables (#44238)
  • Added Illuminate/Routing/UrlGenerator::withKeyResolver() (#44254)
  • Add a hook to the serialisation of collections (#44272)
  • Allow enum route bindings to have default values (#44255)
  • Added benchmark utility class (b4293d7, #44297)
  • Added Illuminate/Console/Scheduling/ManagesFrequencies::everyOddHour() (#44288)

Fixed

  • Fix incrementing string keys (#44247)
  • Fix bug in Fluent Class with named arguments in migrations (#44251)
  • Fix "about" command caching report (#44305)
  • Fixes memory leaks (#44306, #44307)

Changed

  • Patch for timeless timing attack vulnerability in user login (#44069)
  • Refactor: register commands in artisan service (#44257)
  • Allow factories to recycle models with for method (#44265)
  • Use dedicated method for placeholder replacement in validator (#44296)
9.31.0

Added

  • Added unique deferrable initially deferred constants for PostgreSQL (#44127)
  • Request lifecycle duration handler (#44122)
  • Added Model::withoutTimestamps(...) (#44138)
  • Added manifestHash function to Illuminate\Foundation\Vite (#44136)
  • Added support for operator <=> in /Illuminate/Collections/Traits/EnumeratesValues::operatorForWhere() (#44154)
  • Added that Illuminate/Database/Connection::registerDoctrineType() can accept object as well as classname for new doctrine type (#44149)
  • Added Fake Batches (#44104, #44173)
  • Added Model::getAppends() (#44180)
  • Added missing Str::wrap() static method (#44207)
  • Added require symfony/uid (#44202)
  • Make Vite macroable (#44198)

Fixed

  • Async fix in Illuminate/Http/Client/PendingRequest (#44179)
  • Fixes artisan serve command with PHP_CLI_SERVER_WORKERS environment variable (#44204)
  • Fixed InteractsWithDatabase::castAsJson($value) incorrectly handles SQLite Database (#44196)

Changed

  • Improve Blade compilation exception messages (#44134)
  • Improve test failure output (#43943)
  • Prompt to create MySQL db when migrating (#44153)
  • Improve UUID and ULID support for Eloquent (#44146)
9.30.1

Added

  • Allow using a model instance in place of nested model factories (#44107)
  • Added UUID and ULID support for Eloquent (#44074)
  • Implement except method for fake classes to define what should not be faked (#44117)
  • Added interacts with queue middleware to send queued mailable (#44124)
  • Added new exception string to Illuminate/Database/DetectsLostConnections (#44121)

Fixed

Changed

  • Enhance column modifying (#44101)
  • Allow to define which jobs should be actually dispatched when using Bus::fake (#44106)
9.30.0

Added

  • Added stop_buffering config option to logger (#44071)
  • Added read-only filesystem adapter decoration as a config option (#44079)
  • Added scoped filesystem driver (#44105)
  • Add force option to all make commands (#44100)

Fixed

  • Fixed QueryBuilder whereNot with array conditions (#44083)

Changed

  • Passing event into viaQueue and viaConnection of Queued Listener (#44080)
  • Improve testability of batched jobs (#44075)
  • Allow any kind of whitespace in cron expression (#44110)
9.29.0

Added

  • Added RequiredIfAccepted validation rule (#44035)
  • Added Illuminate/Foundation/Vite::assetPath() (#44037)
  • Added ability to discard Eloquent Model changes (#43772)
  • Added ability to determine if attachments exist to Illuminate/Mail/Mailable (#43967)
  • Added Illuminate/Support/Testing/Fakes/BusFake::assertNothingBatched() (#44056)

Reverted

Fixed

  • Avoid Passing null to parameter exception on PHP 8.1 (#43951)
  • Align Remember Me Cookie Duration with CookieJar expiration (#44026)
  • Fix Stringable typehints with Enumerable (#44030)
  • Fixed middleware "SetCacheHeaders" with file responses (#44063)

Changed

  • Don't use locks for queue job popping for PlanetScale's MySQL-compatible Vitess engine (#44027)
  • Avoid matching 'use' in custom Stub templates in Illuminate/Console/GeneratorCommand.php (#44049)
9.28.0

Added

  • Added view data assertions to TestView (#43923)
  • Added Illuminate/Routing/Redirector::getIntendedUrl() (#43938)
  • Added Eloquent mode to prevent prevently silently discarding fills for attributes not in $fillable (#43893)
  • Added Illuminate/Testing/PendingCommand::assertOk() (#43968)
  • Make Application macroable (#43966)
  • Introducing Signal Traps (#43933)
  • Allow registering instances of commands (#43986)
  • Support Enumerable in Stringable (#44012)

Fixed

  • Fixed RoueGroup::merge to format merged prefixes correctly. (#44011)
  • Fixes providesTemporaryUrls on AwsS3V3Adapter (#44009)
  • Fix ordering of stylesheets when using @Vite (#43962)

Changed

  • Allow invokable rules to specify custom messsages (#43925)
  • Support objects like GMP for custom Model casts (#43959)
  • Default 404 message on denyAsNotFound (#43901)
  • Changed Illuminate/Container/Container::resolvePrimitive() for isVariadic() (#43985)
  • Allow validator messages to use nested arrays (#43981)
  • Ensure freezeUuids always resets UUID creation after exception in callback (#44018)
9.27.0

Added

  • Add getter and setter for connection in the DatabaseBatchRepository class (#43869)

Fixed

  • Fix for potential bug with non-backed enums (#43842)
  • Patch nested array validation rule regression bug (#43897)
  • Fix registering event listeners with array callback (#43890)

Changed

  • Explicitly add column name to SQLite query in Illuminate/Database/Console/DatabaseInspectionCommand::getSqliteTableSize() (#43832)
  • Allow broadcast on demand notifications (d2b1446)
  • Make Vite::hotFile() public (#43875)
  • Prompt to create sqlite db when migrating (#43867)
  • Call prepare() on HttpException responses (#43895)
  • Make the model:prune command easier to extend (#43919)
9.26.1

Revert

  • Revert "[9.x] Add statusText for an assertion message" (#43831)

Fixed

9.26.0

Added

  • Adding support for non-backed enums in Models (#43728)
  • Added vite asset url helpers (#43702)
  • Added Authentication keyword for SqlServerConnector.php (#43757)
  • Added support for additional where* methods to route groups (#43731)
  • Added min_digits and max_digits validation (#43797)
  • Added closure support to dispatch conditionals in bus (#43784)
  • Added configurable paths to Vite (#43620)

Fixed

  • Fix unique lock release for broadcast events (#43738)
  • Fix empty collection class serialization (#43758)
  • Fixes creation of deprecations channel (#43812)

Changed

  • Improve display of failures for assertDatabaseHas (#43736)
  • Always use the write PDO connection to read the just stored pending batch in bus (#43737)
  • Move unique lock release to method (#43740)
  • Remove timeoutAt fallback from Job base class (#43749)
  • Convert closures to arrow functions (#43778)
  • Use except also in Illuminate/Routing/Middleware/ValidateSignature::handle() (e554d47)
  • Adjust forever time for cookies (#43806)
  • Make string padding UTF-8 safe (f1762ed)
9.25.1

Fixes

9.25.0

Added

  • Added whenNotExactly to Stringable (#43700)
  • Added ability to Model::query()->touch() to mass update timestamps (#43665)

Fixed

  • Prevent error in db/model commands when using unsupported columns (#43635)
  • Fixes ensureDependenciesExist runtime error (#43626)
  • Null value for auto-cast field caused deprication warning in php 8.1 (#43706)
  • db:table command properly handle table who doesn't exist (#43669)

Changed

  • Handle assoc mode within db commands (#43636)
  • Allow chunkById on Arrays, as well as Models (#43666)
  • Allow for int value parameters to whereMonth() and whereDay() (#43668)
  • Cleaning up old if-else statement (#43712)
  • Ensure correct 'integrity' value is used for css assets (#43714)
9.24.0

Added

  • New db:show, db:table and db:monitor commands (#43367)
  • Added validation doesnt_end_with rule (#43518)
  • Added Illuminate/Database/Eloquent/SoftDeletes::restoreQuietly() (#43550)
  • Added mergeUnless to resource ConditionallyLoadsAttributes trait (#43567)
  • Added Illuminate/Support/Testing/Fakes/NotificationFake::sentNotifications() (#43558)
  • Added implode to Passthru in Illuminate/Database/Eloquent/Builder.php (#43574)
  • Make Config repository macroable (#43598)
  • Add whenNull to ConditionallyLoadsAtrribute trait (#43600)
  • Extract child route model relationship name into a method (#43597)

Revert

Fixed

  • Fix unique locking on broadcast events (#43516)
  • Fixes the issue of running docs command on windows (#43566, #43585)
  • Fixes output when running db:seed or using --seed in migrate commands (#43593)

Changed

  • Gracefully fail when unable to locate expected binary on the system for artisan docs command (#43521)
  • Improve output for some Artisan commands (#43547)
  • Alternative database name in Postgres DSN, allow pgbouncer aliased databases to continue working on 9.x (#43542)
  • Allow @Class() for component tags (#43140)
  • Attribute Cast Performance Improvements (#43554)
  • Queue worker daemon should also listen for SIGQUIT (#43607)
  • Keep original keys when using Collection->sortBy() with an array of sort operations (#43609)
9.23.0

Added

  • Added whereNot method to Fluent JSON testing matchers (#43383)
  • Added deleteQuietly method to Model and use arrow func for related methods (#43447)
  • Added conditionable trait to Filesystem adapters (#43450)
  • Introduce artisan docs command (#43357)
  • Added Support CSP nonce, SRI, and arbitrary attributes with Vite (#43442)
  • Support conditionables that get condition from target object (#43449)
  • Added whereIn to Illuminate/Routing/RouteRegistrar::allowedAttributes (#43509)

Fixed

  • Prevent redis crash when large number of jobs are scheduled for a specific time (#43310)

Changed

  • Make Command components Factory extensible (#43439)
  • Solve Blade component showing quote formatted for the console (#43446)
  • Improves output capture from serve command (#43461)
  • Allow terser singleton bindings (#43469)
9.22.0

Added

  • Added ability to attach an array of files in MailMessage (#43080)
  • Added conditional lines to MailMessage (#43387)
  • Add support for multiple hash algorithms to Illuminate/Filesystem/Filesystem::hash() (#43407)

Fixed

  • Fixes for model:show when attribute default is an enum (#43370)
  • Fixed DynamoDB locks with 0 seconds duration (#43365)
  • Fixed overriding global locale (#43426)

Changed

  • Round milliseconds in console output runtime (#43400)
  • Improves serve Artisan command (#43375)
9.22.1

Added

  • Added unique locking to broadcast events (#43416)

Fixed

  • Fixes Artisan serve command on Windows (#43437)
9.21.6

Revert

Fixed

  • Fixes default attribute value when using enums on model:show (#43360)
9.21.5

Added

  • Adds fluent File validation rule (#43271)

Revert

9.21.4

Added

  • Added Illuminate/Filesystem/FilesystemAdapter::supportsTemporaryUrl() (#43317)

Fixed

  • Fixes confirm component default value (#43334)

Changed

  • Improves console output when command not found (#43323)
9.21.3

Fixed

  • Fixes usage of Migrator without output (#43326)
9.21.2

Fixed

  • Fixes queue:monitor command dispatching QueueBusy (#43320)
  • Ensure relation names are properly "snaked" in JsonResource::whenCounted() method (#43322)
  • Fixed Bootstrap 5 pagination (#43319)
9.21.1

Added

  • Added "Logs" driver to the about command (#43307)
  • Allows to install doctrine/dbal from model:show command (#43288)
  • Added to stub publish command flag that restricts to only existing files (#43314)

Fixed

  • Fixes for model:show command (#43301)

Changed

  • Handle varying composer -V output (#43286)
  • Replace resolve() with app() for Lumen compatible (#43312)
  • Allow using backed enums as route parameters (#43294)
9.21.0

Added

Revert

Fixed

  • Fix transaction attempts counter for sqlsrv (#43176)

Changed

  • Make assertDatabaseHas failureDescription more multibyte character friendly (#43181)
  • ValidationException summarize only when use strings (#43177)
  • Improve mode function in collection (#43240)
  • clear Facade resolvedInstances in queue worker resetScope callback (#43215)
  • Improves queue:work command (#43252)
  • Remove null default attributes names when UPDATED_AT or CREATED_AT is null at Model::replicate (#43279)
  • Protect against ambiguous columns (#43278)
  • Use readpast query hint instead of holdlock for sqlsrv database queue (#43259)
  • Vendor publish flag that restricts to only existing files (#43212)
9.20.0

Added

  • Added quote from Mustafa Kemal Atatürk (#43022)
  • Allow Collection random() to accept a callable (#43028)
  • Added Str::inlineMarkdown() (#43126)
  • Allow authorization responses to specify HTTP status codes (#43097)
  • Added required directive (#43103)
  • Added replicateQuietly to Model (#43141)
  • Added ignore param to ValidateSignature middleware (#43160)

Fixed

  • Fixed forceCreate on MorphMany not returning newly created object (#42996)
  • Fixed missing return in Illuminate/Mail/Attachment::fromStorageDisk() (#43023)
  • Fixed inconsistent content type when using ResponseSequence (#43051)
  • Prevent double throwing chained exception on sync queue (#42950)
  • Avoid matching multi-line imports in GenerateCommand stub templates (#43093)

Changed

  • Disable Column Statistics for php artisan schema:dump on MariaDB (#43027)
  • Bind a Vite Null Object to the Container instead of a Closure in Illuminate/Foundation/Testing/Concerns/InteractsWithContainer::withoutVite() (#43040)
  • Early return when message format is the default in Illuminate/Support/MessageBag::transform() (#43149)
9.19.0

Added

  • Add new allowMaxRedirects method to PendingRequest (#42902)
  • Add support to detect dirty encrypted model attributes (#42888)
  • Added Vite (#42785)

Fixed

  • Fixed bug on forceCreate on a MorphMay relationship not including morph type (#42929)
  • Fix default parameter bug in routes (#42942)
  • Handle cursor paginator when no items are found (#42963)
  • Fixed Str::Mask() for repeating chars (#42956)
  • Fix undefined constant error when use slot name as key of object (#42943)
  • Fix BC break for Log feature tests (#42987)

Changed

  • Allow instance of Enum pass Enum Rule (#42906)
9.18.0

Added

  • Improve file attachment for mail and notifications (#42563)
  • Introduce Invokable validation classes (#42689)
  • Predis v2.0 (#42577)
  • Added Illuminate/View/Compilers/Concerns/CompilesConditionals::compileReadonly() (#42717)
  • Apply where's from union query builder in cursor pagination (#42651)
  • Added ability to define "with" relations as a nested array (#42690)
  • Added ability to set backoff in broadcast events (#42737)
  • Added host(), httpHost(), schemeAndHttpHost() to Request (#42797)
  • Allow invokable rules to push messages to nested (or other) attributes (#42801)
  • Adds compilePushIf and compileEndpushIf functions to View compiler (#42762)
  • Added: Allow removing token during tests (#42841)
  • Added predefined_constants to reservedNames array in Illuminate/Console/GeneratorCommand (#42832)
  • Handle collection creation around a single enum (#42839)
  • Allow for nullable morphs in whereNotMorphedT (#42878)
  • Introduce a fake() helper to resolve faker singletons, per locale (#42844)
  • Allow handling cumulative query duration limit per DB connection (#42744)
  • Add invokable option to make rule command (#42742)

Fixed

  • Fix deprecation error in the route:list command (#42704)
  • Fixed Request offsetExists without routeResolver (#42754)
  • Fixed: Loose comparison causes the value not to be saved (#42793)
  • Fixed: Fix database session driver keeps resetting CSRF token (#42782)
  • Fixed: Arr::map - Fix map-by-reference w/ built-ins (#42815)
  • Fixed league/flysystem suggest (#42872)

Changed

  • Start session in TestResponse to allow marshalling of error bag from JSON (#42710)
  • Rename methods in Illuminate/Broadcasting/BroadcastManager (753e9fd)
  • Avoid throwing on invalid mime-type in Illuminate/Filesystem/FilesystemAdapter::mimeType() (#42761)
  • Do not resolve already set headers in Illuminate/Filesystem/FilesystemAdapter (#42760)
  • Standardise invokable rule translation functionality (#42873)
  • Clear cast cache when setting attributes using arrow (#42852)
9.17.0

Added

  • Added Illuminate/Database/Eloquent/Builder::withoutEagerLoad() (#42641)
  • Allow random string generation to be controlled (#42669)
  • Adds doesnt_start_with validation (#42683, de35bf2)
  • Added quarterlyOn cron schedule frequency command (#42692)

Fixed

  • Free reserved memory before handling fatal errors (#42630, #42646)
  • Prevent $mailer being reset when testing mailables that implement ShouldQueue (#42695)
  • Added checks for Pusher 7.1 preps (#42632)
  • Fixed grouping for user authorization (#42664)

Changed

  • Allow assertions against pushed string based pushed jobs (#42676)
9.16.0

Added

  • Added Eloquent withWhereHas method (#42597)
  • User authentication for Pusher (#42531)
  • Added additional uuid testing helpers (#42619)

Fixed

  • Fix queueable notification's ID overwritten (#42581)
  • Handle undefined array key error in route (#42606)

Deprecated

  • Illuminate/Routing/Redirector::home() (#42600)
9.15.0

Added

  • Added --only-vendor option to route:list command (#42549)
  • Added Illuminate/Http/Client/PendingRequest::throwUnless() (#42556)
  • Added Illuminate/Support/Str::isJson() (#42545)
  • Added Illuminate/Filesystem/Filesystem::isEmptyDirectory() (#42559)
  • Added Add counts to route:list command (#42551)
  • Support kebab case for slot name shortcut (#42574)

Revered

Fixed

  • Fix getting '0' from route parameter in Authorize middleware (#42582)

Changed

  • Retain the original attribute value during validation of an array key with a dot for correct failure message (#42395)
  • Allow bootable test traits to teardown (#42521)
  • Pass thrown exception to $sleepMilliseconds closure in retry helper (#42532)
  • Make HasTimestamps::updateTimestamps chainable (#42533)
  • Remove meaningless parameter in Illuminate/View/Concerns/ManagesEvents (#42546)
  • Map integer parameter to parameter name when resolving binding field (#42571)
  • Conditionable should return HigherOrderWhenProxy only when the args number is exactly 1 (#42555)
9.14.1

Added

  • Model::whereRelation add callback function (#42491)
  • Add Conditionable Trait to Illuminate\Support\Carbon (#42500)

Fixed

  • Fix afterCommit and DatabaseTransactions (#42502)
  • Fixed regression when only some route parameters are scoped (#42517)
9.14.0

Added

  • Added ability to add table comments for MySQL and Postgres (#42401)
  • Added dynamic trashed factory state (#42414)
  • Added Illuminate/Collections/Arr::prependKeysWith() (#42448)
  • Added bootable traits to TestCase (#42394)

Fixed

  • Fix clone issue on updateOrCreate and firstOrCreate (#42434)
  • Prevent double sanitized key in RateLimiter@tooManyAttempts (#42462)
  • Add flush handler to output buffer for streamed test response (bugfix) (#42481)

Changed

  • Adds attaches a concise error message to SES exceptions (#42426)
  • Use duplicate instead of createFromBase to clone request when routes are cached (#42420)
  • Use model route key when route parameter does not specifiy custom binding field but a different parameter does (#42425)
  • Adds ability to have paginate() $perPage parameter as callable with access to $total (#42429)
  • Extract ServeCommand env list to static property (#42444)
  • Use route parameters in view (#42461)
9.13.0

Added

  • Added Illuminate/Collections/Traits/EnumeratesValues::value() (#42257)
  • Added new TestResponse helper: assertJsonMissingPath (#42361)
  • Added Illuminate/Support/Testing/Fakes/NotificationFake::assertCount() (#42366)
  • Added new DetectLostConnections (#42377, #42382)
  • Added Illuminate/Testing/TestResponse::collect() (#42384)
  • Added full callable support to schedule:list (#42400)
  • Added Illuminate/Collections/Arr::map() (#42398)

Fixed

  • Fixed PruneCommand finding its usage within other traits (#42350)
  • Fix assert that exception is thrown without message (#42360)

Changed

  • Skip parameter parsing for raw post body in HTTP Client (#42364)
  • Consistency between digits and digits_between validation rules (#42358)
  • Corrects the use of "failed_jobs" instead of "job_batches" in BatchedTableCommand (#42389)
  • Update email.blade.php (#42388)
  • Remove old monolog 1.x compat code (#42392)
  • SesTransport: use correct Tags argument (#42390)
  • Implement robust handling of forwarding of exception codes (#42393)
9.12.2

Fixed

  • Factory fails to eval models and factories when returned from closure (#42344)

Changed

  • Added is_string check to QueriesRelationships@requalifyWhereTables (#42341)
9.12.1

Fixed

  • Fix TypeError in DeadlockException (#42337)
  • Fixed type mismatch on Pusher::validate_channels() (#42340)

Changed

  • Add custom segments on "remember me" for session rebuild (#42316)
9.12.0

Added

  • Added closure based exceptions testing (#42155)
  • Allow forcing requests made via the Http client to be faked (#42230)
  • Added 'throwIf' method to PendingRequest (#42260)
  • Allow passing key/value arrays to getArguments and getOptions (#42268)
  • Add whereNotMorphedTo, orWhereNotMorphedTo (#42264)
  • Add method to extend localeArray generation (#42275)
  • Added ability to set delay per channel based on notifiable instance (#42239)
  • Added Illuminate/Pagination/CursorPaginator::onLastPage() (#42301)
  • Added findOr method to Query/Builder (#42290)

Fixed

  • Fix too many channels with pusher broadcasting (#42287)
  • Fix Str::Mask() for repeating chars (#42295)
  • Fix EventFake::assertListening() for asserting string-based observer listeners (#42289)
  • Fixed Loose comparison causes the value not to be saved (#41337)
  • Fix multiple dots for digits_between rule (#42330)

Changed

  • Enable to modify HTTP Client request headers when using beforeSending() callback (#42244)
  • Make throttle lock acquisition retry configurable for concurrency limiter (#42242)
  • Defers expanding callables on Factories (#42241)
  • Add wherehas soft deleting scopes (#42100)
  • Improve password checks (#42248)
  • Set relation parent key when using forceCreate on HasOne and HasMany relations (#42281)
  • Make sure the prefix override behaviours are the same between phpredis and predis drivers (#42279)
  • Share logging context across channels and stacks (#42276)
9.11.0

Added

  • Added Illuminate/Collections/Arr::join() (#42197)
  • Added has and missing methods to ValidatedInput (#42184)
  • Added deprecation stack trace config option (#42235)

Fixed

  • Fix deprecation issue with translator and empty rules (#42216, #42213)

Changed

  • Improve EventFake::assertListening() support for subscribers (#42193)
9.10.0

Added

  • Add the ability to use alias when performing upsert via MySQL (#42053)
  • Illuminate/Routing/Router::middlewareGroup() will support array of the middlewares (#42004, e6b84fb)
  • Added Missing AsCommand attribute on schedule:list (#42069)
  • Add the beforeRefreshingDatabase function to the Testing/RefreshDatabase trait (#42073)
  • Added doesntExpectOutputToContain assertion method (#42096)
  • Added a findOr method to Eloquent (#42092)
  • Allow extension in Illuminate/View/Compilers/Compiler.php (68e41fd)
  • Support 'IS' and 'IS NOT' PostgreSQL operators (#42123)
  • Added str and string methods to Illuminate/Http/Concerns/InteractsWithInput (c9d34b7)
  • Added methods to append and prepend jobs to existing chain (#42138)

Fixes

  • Make it so non-existent jobs run down the failed path instead of crashing (#42079)
  • Fix schedule:work command Artisan binary name (#42083)
  • Fix TrimStrings middleware with non-UTF8 characters (#42065)
  • Copy locale and defaultLocale from original request in Request::createFrom() (#42080)
  • Fix ViewErrorBag for JSON session serialization (#42090)
  • Fix array keys from cached routes in CompiledRouteCollection::getRoutesByMethod() (#42078)
  • Fix json_last_error issue with JsonResponse::setData (#42125)
  • Fix bug in BelongsToMany where non-related rows are returned (#42087)
  • Fix HasAttributes::mutateAttributeForArray when accessing non-cached attribute (#42130)

Changed

  • Make password rule errors translatable (#42060)
  • Redesign of the event:list Command. (#42068)
  • Changed event:list command (#42084)
  • Throw LostDbConnectionException instead of LogicException (#42102)
  • Throw deadlock exception (#42129)
  • Support Arr::forget() for nested ArrayAccess objects (#42142)
  • Allow Illuminate/Collections/Enumerable::jsonSerialize() to return other types (#42133)
  • Update schedule:list colouring output (#42153
9.9.0

Added

  • Add getAllTables support for SQLite and SQLServer schema builders (#41896)
  • Added withoutEagerLoads() method to Builder (#41950)
  • Added 'throw' method to PendingRequest (#41953)
  • Configurable pluralizer language and uncountables (#41941)

Fixed

  • Fixed Error in Illuminate/Routing/Exceptions/StreamedResponseException (#41955)
  • Fix PHP warnings when rendering long blade string (#41956)
  • Fix ExcludeIf regression to use Closure over is_callable() (#41969)
  • Fixes applying replacements to multi-level localization arrays (#42022)

Changed

  • Improved Illuminate/Foundation/Http/Middleware/TrimStrings.php and Str::squish() (#41949, #41971)
  • Use config session domain for maintenance cookie (#41961)
  • Revert lazy command forcing (#41982)
9.8.0

Added

  • Added inbound option to CastMakeCommand (#41838)
  • Added a way to retrieve the first column of the first row from a query (#41858)
  • Make DatabaseManager Macroable (#41868)
  • Improve Str::squish() (#41877, #41924)
  • Added option to disable cached view (#41859)
  • Make Connection Class Macroable (#41865)
  • Added possibility to discover anonymous Blade components in other folders (#41637)
  • Added Illuminate/Database/Eloquent/Factories/Factory::set() (#41890)
  • Added multibyte support to string padding helper functions (#41899)
  • Allow to use custom log level in exception handler reporting (#41925)

Fixed

  • Illuminate/Support/Stringable::exactly() with Stringable value (#41846)
  • Fixed afterCommit and RefreshDatabase (#41782)
  • Fix null name for email address in Illuminate/Mail/Message (#41870)
  • Fix seeder property for in-memory tests (#41869)
  • Fix empty paths for server.php (#41933)
  • Fix ExcludeIf constructor (#41931)

Changed

  • Set custom host to the serve command with environment variable (#41831)
  • Add handling of object being passed into old method in Model (#41842)
  • Catch permission exception when creating directory (#41871)
  • Restore v8 behaviour of base query for relations (#41918, #41923)
  • Standardize withCount() & withExists() eager loading aggregates (#41914)
9.8.1

Reverted

  • Revert "Standardize withCount() & withExists() eager loading aggregates (#41943)
9.7.0

Added

  • Make whereBelongsTo accept Collection (#41733)
  • Database queries containing JSON paths support array index braces (#41767)
  • Fire event before route matched (#41765)
  • Added to Illuminate/Http/Resources/ConditionallyLoadsAttributes::whenNotNull method (#41769)
  • Added "whereIn" route parameter constraint method (#41794)
  • Added Illuminate/Queue/BeanstalkdQueue::bulk() (#41789)
  • Added Illuminate/Queue/SqsQueue::bulk() (#41788)
  • Added String::squish() helper (#41791)
  • Added query builder method whereJsonContainsKey() (#41802)
  • Enable dispatchAfterResponse for batch (#41787)

Fixed

  • Factory generation fixes (#41688)
  • Fixed Http Client throw boolean parameter of retry method (#41762, #41792)
  • Ignore empty redis username string in PhpRedisConnector (#41773)
  • Fixed support of nullable type for AsArrayObject/AsCollection (#41797, 05846e7)
  • Fixed adding jobs from iterable to the pending batch (#41786)
  • Http client: fix retry handling of connection exception (#41811)

Changed

  • Enable batch jobs delay for database queue (#41758)
  • Enable batch jobs delay for redis queue (#41783)
  • Http client: dispatch "response received" event for every retry attempt (#41793)
  • Http Client: provide pending request to retry callback (#41779)
  • Allow non length limited strings and char for postgresql (#41800)
  • Revert some Carbon::setTestNow() removals (#41810)
  • Allow cleanup of databases when using parallel tests (#41806)
9.6.0

Added

  • Added whenTableHasColumn and whenTableDoesntHaveColumn on Schema Builder (#41517)
  • Added Illuminate/Mail/Mailable::hasSubject() (#41575)
  • Added Illuminate/Filesystem/Filesystem::hasSameHash() (#41586)

Fixed

  • Fixed deprecation warning in Str::exists() (d39d92d)
  • Fix artisan make:seeder command nested namespace and class name problem (#41534)
  • Fixed Illuminate/Redis/Connections/PhpRedisConnection::handle() (#41546)
  • Stop throwing LazyLoadingViolationException for recently created model instances (#41549)
  • Close doctrineConnection on disconnect (#41584)

Changed

  • Make throttle lock acquisition retry time configurable (#41516)
  • Allows object instead of array when adding to PendingBatch (#41475)
  • Exactly match scheduled command --name in schedule:test (#41528)
  • Handle Symfony defaultName deprecation (#41555, #41595)
  • Improve ScheduleListCommand (#41552, #41535, #41494)
  • Remove useless if statement in Str::mask() (#41570)
9.5.1

Reverted

  • Revert "Fix the guard instance used." (#41491)
9.5.0

Added

  • Added callback support on implode Collection method. (#41405)
  • Added Illuminate/Filesystem/FilesystemAdapter::assertDirectoryEmpty() (#41398)
  • Implement email "metadata" for SesTransport (#41422)
  • Make assertPath() accepts Closure (#41409)
  • Added callable support to operatorForWhere on Collection (#41414, #41424)
  • Added partial queue faking (#41425)
  • Added --name option to schedule:test command (#41439)
  • Define Illuminate/Database/Eloquent/Concerns/HasRelationships::newThroughInstance() (#41444)
  • Added Illuminate/Support/Stringable::wrap() (#41455)
  • Adds "freezeTime" helper for tests (#41460)
  • Allow for callables with beforeSending inIlluminate/Http/Client/PendingRequest.php::runBeforeSendingCallbacks() (#41489)

Fixed

  • Fixed deprecation warnings from route:list when filtering on name or domain (#41421)
  • Fixes HTTP::pool response when a URL returns a null status code (#41412)
  • Fixed recaller name resolution in Illuminate/Session/Middleware/AuthenticateSession.php (#41429)
  • Fixed the guard instance used in /Illuminate/Session/Middleware/AuthenticateSession.php (#41447)
  • Fixed route:list --except-vendor hiding Route::view() & Route::redirect() (#41465)

Changed

  • Add null typing to connection property in \Illuminate\Database\Eloquent\Factories\Factory (#41418)
  • Update reserved names in GeneratorCommand (#41441)
  • Redesign php artisan schedule:list Command (#41445)
  • Extend eloquent higher order proxy properties (#41449)
  • Allow passing named arguments to dynamic scopes (#41478)
  • Throw if tag is passed but is not supported in Illuminate/Encryption/Encrypter.php (#41479)
  • Update PackageManifest::$vendorPath initialisation for cases, when composer vendor dir is not in project director (#41463)
9.4.1

Fixed

  • Fixed version of laravel
9.4.0

Added

  • Support modifying a char column type (#41320)
  • Add "Mutex" column to 'schedule:list' command (#41338)
  • Allow eloquent whereNot() and orWhereNot() to work on column and value (#41296)
  • Allow VerifyCsrfToken's CSRF cookie to be extended (#41342)
  • Added soleValue() to query builder (#41368)
  • Added lcfirst() to Str and Stringable (#41384)
  • Added retryUntil method to queued mailables (#41393)

Fixed

  • Fixed middleware sorting for authenticating sessions (50b46db)
  • Fixed takeUntilTimeout method of LazyCollection (#41354, #41370)
  • Fixed directory for nested markdown files for mailables (#41366)
  • Prevent serializing default values of queued jobs (#41348)
  • Fixed get() and head() in Illuminate/Http/Client/PendingRequest.php (a54f481)

Changed

  • Don't use global tap helper (#41326)
  • Allow chaining of Illuminate/Console/Concerns/InteractsWithIO::newLine (#41327)
  • set destinations since bcc missing from raw message in Mail SesTransport (8ca43f4)
9.3.1

Added

Changed

  • Allow overriding transport type on Mailgun transporter by @jnoordsij in #41309
  • Change how Laravel handles strict morph map with pivot classes by @crynobone in #41304

Fixed

9.3.0

Added

  • Add NotificationFake::assertNothingSentTo() by @axlon (#41232)
  • Support --ssl-ca on schema load and dump by @DeepDiver1975 (#40931)
  • Add whereNot() to Query Builder and Eloquent Builder by @marcovo (#41096)
  • Added support for index and position placeholders in array validation messages by @Bird87ZA (#41123)
  • Add resource binding by @aedart (#41233)
  • Add ability to push additional pipes onto a pipeline via chain($pipes) by @stevebauman (#41256)
  • Add option to filter out routes defined in vendor packages in route:list command by @amiranagram (#41254)

Fixed

  • Query PostgresBuilder fixes for renamed config 'search_path' by @derekmd (#41215)
  • Improve doctypes for Eloquent Factory guessing methods by @bastien-phi (#41245)
  • Fix Conditional::when and Conditional::unless when called with invokable by @bastien-phi (#41270)
  • Improves Support\Collection reduce method type definition by @fdalcin (#41272)
  • Fix inconsistent results of firstOrNew() when using withCasts() by @Attia-Ahmed (#41257)
  • Fix implicitBinding and withTrashed route with child with no SoftDeletes trait by @stein-j (#41282)

Changed

9.2.0

Added

  • Added Illuminate/Database/Eloquent/Casts/Attribute::make() (#41014)
  • Added Illuminate/Collections/Arr::keyBy() (#41029)
  • Added expectsOutputToContain to the PendingCommand. (#40984)
  • Added ability to supply HTTP client methods with JsonSerializable instances (#41055)
  • Added Illuminate/Filesystem/AwsS3V3Adapter::getClinet() (#41079)
  • Added Support for enum in Builder::whereRelation (#41091)
  • Added X headers when using Mail::alwaysTo (#41101)
  • Added of support Bitwise operators in query (#41112)
  • Integrate Laravel CORS into framework (#41137)
  • Added Illuminate/Support/Str::betweenFirst() (#41144)
  • Allow specifiying custom messages for Rule objects (#41145)

Fixed

  • Fixed Queue Failed_jobs insert issue with Exception contain UNICODE (#41020)
  • Fixes attempt to log deprecations on mocks (#41057)
  • Fixed loadAggregate not correctly applying casts (#41050)
  • Do not transform JsonSerializable instances to array in HTTP client methods (#41077)
  • Fix parsing config('database.connections.pgsql.search_path') (#41088)
  • Eloquent: firstWhere returns Object instead of NULL (#41099)
  • Fixed updated with provided qualified updated_at (#41133)
  • Fix setPriority Call for MailChannel (#41120)
  • Fixed route:list command output (#41177)
  • Fix database migrations $connection property (#41161)

Changed

  • Cursor pagination: convert original column to expression (#41003)
  • Cast $perPage to integer on Paginator (#41073)
  • Restore S3 client extra options (#41097)
  • Use latest() within notifications() in Illuminate/Notifications/HasDatabaseNotifications.php (#41095)
  • Remove duplicate queries to find batch (#41121)
  • Remove redundant check in FormRequest::validated() (#41115)
  • Illuminate/Support/Facades/Storage::fake() changed (#41113)
  • Use coalesce equal as provided by PHP >= 7.4 (#41174)
  • Simplify some conditions with is_countable() (#41168)
  • Pass AWS temporary URL options to createPresignedRequest method (#41156)
  • Let Multiple* exceptions hold the number of records and items found (#41164)
9.1.0

Added

Changed

  • Improve types on model factory methods by @axlon in #40902
  • Add support for passing array as the second parameter for the group method. by @hossein-zare in #40945
  • Makes ExceptionHandler::renderForConsole internal on contract by @nunomaduro in #40956
  • Put the error message at the bottom of the exceptions by @nshiro in #40886
  • Expose next and previous cursor of cursor paginator by @gdebrauwer in #41001

Fixed

9.0.2

Added

Changed

Fixed

9.0.1

Changed

Fixed

9.0.0

Check the upgrade guide in the Official Laravel Upgrade Documentation. Also you can see some release notes in the Official Laravel Release Documentation.