v9.8.1 - 2022-04-12
- Revert "Standardize withCount() & withExists() eager loading aggregates (#41943)
v9.8.0 - 2022-04-12
- 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)
- 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)
- 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)
v9.7.0 - 2022-04-05
- 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)
- 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)
- 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)
v9.6.0 - 2022-03-29
- Added whenTableHasColumn and whenTableDoesntHaveColumn on Schema Builder (#41517)
- Added Illuminate/Mail/Mailable::hasSubject() (#41575)
- Added
Illuminate/Filesystem/Filesystem::hasSameHash()
(#41586)
- 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)
- 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)
v9.5.1 - 2022-03-15
- Revert "Fix the guard instance used." (#41491)
v9.5.0 - 2022-03-15
- 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::newRelatedThroughInstance()
(#41444) - Added
Illuminate/Support/Stringable::wrap()
(#41455) - Adds "freezeTime" helper for tests (#41460)
- Allow for callables with beforeSending in
Illuminate/Http/Client/PendingRequest.php::runBeforeSendingCallbacks()
(#41489)
- 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)
- 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)
v9.4.1 - 2022-03-08
- Fixed version of laravel
v9.4.0 - 2022-03-08
- 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()
toStr
andStringable
(#41384) - Added retryUntil method to queued mailables (#41393)
- 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)
- 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)
v9.3.1 - 2022-03-03
- Optionally cascade thrown Flysystem exceptions by @driesvints in laravel#41308
- Allow overriding transport type on Mailgun transporter by @jnoordsij in laravel#41309
- Change how Laravel handles strict morph map with pivot classes by @crynobone in laravel#41304
- $job can be an object in some methods by @villfa in laravel#41244
- Fix docblock on Batch class by @yoeriboven in laravel#41295
- Correct
giveConfig
param doc by @Neol3108 in laravel#41314 - Fix MySqlSchemaState does not add --ssl-ca to mysql cli by @DeepDiver1975 in laravel#41315
- Do not prepend baseUrl to absolute urls by @JaZo in laravel#41307
- Fixes getting the trusted proxies IPs from the configuration file by @nunomaduro in laravel#41322
- 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)
- 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)
- Unset Connection Resolver extended callback by @emrancu (#41216)
- Update Mailgun transport type by @driesvints (#41255)
- 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::getClient()
(#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 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)
- Cursor pagination: convert original column to expression (#41003)
- Cast $perPage to integer on Paginator (#41073)
- Restore S3 client extra options (#41097)
- Use
latest()
withinnotifications()
inIlluminate/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)
- Added the ability to use the uniqueFor method for Jobs by @andrey-helldar in laravel#40974
- Add filtering of route:list by domain by @Synchro in laravel#40970
- Added dropForeignIdFor method to match foreignIdFor method by @bretto36 in laravel#40950
- Adds
Str::excerpt
by @nunomaduro in laravel#41000 - Make:model --morph flag to generate MorphPivot model by @michael-rubel in laravel#41011
- Add doesntContain to higher order proxies by @edemots in laravel#41034
- Improve types on model factory methods by @axlon in laravel#40902
- Add support for passing array as the second parameter for the group method. by @hossein-zare in laravel#40945
- Makes
ExceptionHandler::renderForConsole
internal on contract by @nunomaduro in laravel#40956 - Put the error message at the bottom of the exceptions by @nshiro in laravel#40886
- Expose next and previous cursor of cursor paginator by @gdebrauwer in laravel#41001
- Fix FTP root config by @driesvints in laravel#40939
- Allows tls encryption to be used with port different than 465 with starttls by @nicolalazzaro in laravel#40943
- Catch suppressed deprecation logs by @nunomaduro in laravel#40942
- Fix typo in method documentation by @shadman-ahmed in laravel#40951
- Patch regex rule parsing due to
Rule::forEach()
by @stevebauman in laravel#40941 - Fix replacing request options by @driesvints in laravel#40954
- Fix
MessageSent
event by @driesvints in laravel#40963 - Add firstOr() function to BelongsToMany relation by @r-kujawa in laravel#40828
- Fix
isRelation()
failing to check anAttribute
by @rodrigopedra in laravel#40967 - Fix default pivot attributes by @iamgergo in laravel#40947
- Fix enum casts arrayable behaviour by @diegotibi in laravel#40885
- Solve exception error: Undefined array key "", in artisan route:list command by @manuglopez in laravel#41031
- Fix Duplicate Route Namespace by @moisish in laravel#41021
- Fix the error message when no routes are detected by @LukeTowers in laravel#41017
- Fix mails with tags and metadata are not queuable by @joostdebruijn in laravel#41028
- Add disabled directive by @belzaaron in laravel#40900
- Widen the type of
Collection::unique
$key
parameter by @NiclasvanEyk in laravel#40903 - Makes
ExceptionHandler::renderForConsole
internal by @nunomaduro in laravel#40936 - Removal of Google Font integration from default exception templates by @bashgeek in laravel#40926
- Allow base JsonResource class to be collected by @jwohlfert23 in laravel#40896
- Fix Support\Collection reject method type definition by @joecampo in laravel#40899
- Fix SpoofCheckValidation namespace change by @eduardor2k in laravel#40923
- Fix notification email recipient by @driesvints in laravel#40921
- Fix publishing visibility by @driesvints in laravel#40918
- Fix Mailable->priority() by @giggsey in laravel#40917
- Improves
Support\Collection
each method type definition by @zingimmick in laravel#40879
- Update Mailable.php by @rentalhost in laravel#40868
- Switch to null coalescing operator in Conditionable by @inxilpro in laravel#40888
- Bring back old return behaviour by @ankurk91 in laravel#40880
Check the upgrade guide in the Official Laravel Upgrade Documentation. Also you can see some release notes in the Official Laravel Release Documentation.