v9.31.0 - 2022-09-20
- 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)
- 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)
- 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)
v9.30.1 - 2022-09-15
- 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)
- Enhance column modifying (#44101)
- Allow to define which jobs should be actually dispatched when using Bus::fake (#44106)
v9.30.0 - 2022-09-13
- 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 QueryBuilder whereNot with array conditions (#44083)
- 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)
v9.29.0 - 2022-09-09
- 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)
- 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)
- 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)
v9.28.0 - 2022-09-06
- 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 RoueGroup::merge to format merged prefixes correctly. (#44011)
- Fixes providesTemporaryUrls on AwsS3V3Adapter (#44009)
- Fix ordering of stylesheets when using @vite (#43962)
- 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)
v9.27.0 - 2022-08-30
- Add getter and setter for connection in the DatabaseBatchRepository class (#43869)
- 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)
- 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)
v9.26.1 - 2022-08-23
- Revert "[9.x] Add statusText for an assertion message" (#43831)
- Fixed
withoutVite
(#43826)
v9.26.0 - 2022-08-23
- 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)
- Fix unique lock release for broadcast events (#43738)
- Fix empty collection class serialization (#43758)
- Fixes creation of deprecations channel (#43812)
- 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)
v9.25.1 - 2022-08-16
v9.25.0 - 2022-08-16
- Added whenNotExactly to Stringable (#43700)
- Added ability to Model::query()->touch() to mass update timestamps (#43665)
- 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)
- 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)
v9.24.0 - 2022-08-09
- 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
toPassthru
inIlluminate/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)
- 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)
- 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)
v9.23.0 - 2022-08-02
- 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
toIlluminate/Routing/RouteRegistrar::allowedAttributes
(#43509)
- Prevent redis crash when large number of jobs are scheduled for a specific time (#43310)
- 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)
v9.22.1 - 2022-07-26
- Added unique locking to broadcast events (#43416)
- Fixes Artisan serve command on Windows (#43437)
v9.22.0 - 2022-07-26
- 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)
- Fixes for model:show when attribute default is an enum (#43370)
- Fixed DynamoDB locks with 0 seconds duration (#43365)
- Fixed overriding global locale (#43426)
v9.21.6 - 2022-07-22
- Fixes default attribute value when using enums on model:show (#43360)
v9.21.5 - 2022-07-21
- Adds fluent File validation rule (#43271)
- Allow section payload to be lazy in the "about" command (#43329)
v9.21.4 - 2022-07-21
- Added
Illuminate/Filesystem/FilesystemAdapter::supportsTemporaryUrl()
(#43317)
- Fixes confirm component default value (#43334)
- Improves console output when command not found (#43323)
v9.21.3 - 2022-07-20
- Fixes usage of Migrator without output (#43326)
v9.21.2 - 2022-07-20
- Fixes queue:monitor command dispatching QueueBusy (#43320)
- Ensure relation names are properly "snaked" in JsonResource::whenCounted() method (#43322)
- Fixed Bootstrap 5 pagination (#43319)
v9.21.1 - 2022-07-20
- 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)
- Fixes for model:show command (#43301)
- Handle varying composer -V output (#43286)
- Replace resolve() with app() for Lumen compatible (#43312)
- Allow using backed enums as route parameters (#43294)
v9.21.0 - 2022-07-19
- Added inspiring quote (#43180, #43189)
- Introducing a fresh new look for Artisan (#43065)
- Added whenCounted to JsonResource (#43101)
- Artisan model:show command (#43156)
- Artisan
about
Command (#43147, 51b5eda, #43225, #43276) - Adds enum casting to Request (#43239)
- Revert "Fix default parameter bug in routes" (#43208)
- Revert route change PR (#43255)
- Fix transaction attempts counter for sqlsrv (#43176)
- 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)
v9.20.0 - 2022-07-13
- 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 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)
- 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)
v9.19.0 - 2022-06-28
- Add new allowMaxRedirects method to PendingRequest (#42902)
- Add support to detect dirty encrypted model attributes (#42888)
- Added Vite (#42785)
- 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)
- Fix undefined constant error when use slot name as key of object (#42943)
- Fix BC break for Log feature tests (#42987)
- Allow instance of Enum pass Enum Rule (#42906)
v9.18.0 - 2022-06-21
- 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)
- 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)
- 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)
v9.17.0 - 2022-06-07
- 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)
- 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)
- Allow assertions against pushed string based pushed jobs (#42676)
v9.16.0 - 2022-06-02
- Added Eloquent withWhereHas method (#42597)
- User authentication for Pusher (#42531)
- Added additional uuid testing helpers (#42619)
- Fix queueable notification's ID overwritten (#42581)
- Handle undefined array key error in route (#42606)
- Illuminate/Routing/Redirector::home() (#42600)
v9.15.0 - 2022-05-31
- 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)
- Fix getting '0' from route parameter in Authorize middleware (#42582)
- 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)
v9.14.1 - 2022-05-25
- Model::whereRelation add callback function (#42491)
- Add Conditionable Trait to Illuminate\Support\Carbon (#42500)
- Fix afterCommit and DatabaseTransactions (#42502)
- Fixed regression when only some route parameters are scoped (#42517)
v9.14.0 - 2022-05-24
- 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)
- 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)
- 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)
v9.13.0 - 2022-05-17
- 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 PruneCommand finding its usage within other traits (#42350)
- Fix assert that exception is thrown without message (#42360)
- 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)
v9.12.2 - 2022-05-11
- Factory fails to eval models and factories when returned from closure (#42344)
- Added is_string check to QueriesRelationships@requalifyWhereTables (#42341)
v9.12.1 - 2022-05-10
- Fix TypeError in DeadlockException (#42337)
- Fixed type mismatch on Pusher::validate_channels() (#42340)
- Add custom segments on "remember me" for session rebuild (#42316)
v9.12.0 - 2022-05-10
- 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)
- 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)
- 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)
v9.11.0 - 2022-05-03
- Added Illuminate/Collections/Arr::join() (#42197)
- Added has and missing methods to ValidatedInput (#42184)
- Added deprecation stack trace config option (#42235)
- Improve EventFake::assertListening() support for subscribers (#42193)
v9.10.1 - 2022-04-28
- Revert of "Illuminate/Routing/Router::middlewareGroup() will support array of the middlewares" (7563912)
v9.10.0 - 2022-04-27
- 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
andstring
methods to Illuminate/Http/Concerns/InteractsWithInput (c9d34b7) - Added methods to append and prepend jobs to existing chain (#42138)
- 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)
- 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
v9.9.0 - 2022-04-19
- 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 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)
- 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)
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.