- Added updateOrFail method to Model (#38592)
- Make mail stubs more configurable (#38596)
- Added prohibits validation (#38612)
- Added exclude validation rule (#38537)
- Allow passing when callback to Http client retry method (#38531)
- Added
Illuminate/Testing/TestResponse::assertUnprocessable()
(#38553) - Added the password reset URL to the toMailCallback (#38552)
- Added a simple where helper for querying relations (#38499)
- Allow sync broadcast via method (#38557)
- Make $validator->sometimes() item aware to be able to work with nested arrays (#38443)
- Fixed Blade component falsy slots (#38546)
- Keep backward compatibility with custom ciphers in
Illuminate/Encryption/Encrypter::generateKey()
(#38556) - Fixed bug discarding input fields with empty validation rules (#38563)
- Don't iterate over all collection in Collection::firstOrFail (#38536)
- Error out when detecting incompatible DBAL version (#38543)
- Added firstOrFail to Illuminate\Support\Collections and Illuminate\Support\LazyCollections (#38420)
- Support route caching with trashed bindings (c3ec2f2)
- Allow only keys directly on safe in FormRequest (5e4ded8)
- Added default rules in conditional rules (#38450)
- Added fullUrlWithoutQuery method to Request (#38482)
- Added --implicit (and -i) option to make:rule (#38480)
- Added colon port support in serve command host option (#38522)
- Testing: Access component properties from the return value of $this->component() (#38396, 42a71fd)
- Update InteractsWithInput::bearerToken() (#38426)
- Minor improvements to validation assertions API (#38422)
- Blade component slot attributes (#38372)
- Convenient methods for rate limiting (2f93c49)
- Run event:clear on optimize:clear (a61b24c2)
- Remove unnecessary double MAC for AEAD ciphers (#38475)
- Adds Response authorization to Form Requests (#38489)
- Make TestResponse::getCookie public so it can be directly used in tests (#38524)
- Added stringable support for isUuid (#38330)
- Allow for closure reflection on all MailFake assertions (#38328)
- Added
Illuminate/Support/Testing/Fakes/MailFake::assertNothingOutgoing()
(363af47) - Added
Illuminate/Support/Testing/Fakes/MailFake::assertNotOutgoing()
(a3658c9) - Added Support withTrashed on routes (#38348)
- Added Failover Swift Transport driver (#38344)
- Added Conditional rules (#38361)
- Added assertRedirectToSignedRoute() method for testing responses (#38349)
- Added Validated subsets (#38366)
- Share handler instead of client between requests in pool to ensure ResponseReceived events are dispatched in async HTTP Request (#38380)
- Support union types on event discovery (#38383)
- Added Assert invalid in testResponse (#38384)
- Add qualifyColumns method to Model class (#38403)
- Added ability to throw a custom validation exception (#38406)
- Support shorter subscription syntax (#38408)
- Handle exceptions in batch callbacks (#38327)
- Bump AWS PHP SDK (#38297)
- Fixed firstOrCreate and firstOrNew should merge attributes correctly (#38346)
- Check for incomplete class to prevent unexpected error when class cannot be loaded in retry command (#38379)
- Update the ParallelRunner to allow for a custom Runner to be resolved (#38374)
- Use Fluent instead of array on Rule::when() (#38397)
- Added support for GCM encryption (#38190, 827bc1d)
- Added exception as parameter to the missing() callbacks in
Illuminate/Routing/Middleware/SubstituteBindings.php
(#38289) - Implement TrustProxies middleware (#38295)
- Added bitwise not operator to
Illuminate/Database/Query/Builder.php
(#38316) - Adds attempt method to RateLimiter (#38313)
- Added withoutTrashed on Exists rule (#38314)
- Wraps column name inside subQuery of hasOneOfMany-relationship (#38263)
- Change Visibility of the Markdown property in Mailable (#38320)
- Swap multiple logical OR for in_array when checking date casting (#38307)
- Fixed out of bounds shift and pop behavior in Collection (bd89575)
- Fixed schedule timezone when using CarbonImmutable (#38297)
- Fixed isDateCastable for the new immutable_date and immutable_datetime casts (#38294)
- Fixed Factory hasMany method (#38319)
- Added placeholders replace for accepted_if validation message (#38240)
- Use type hints in cast.stub to match interface (#38234)
- Some PHP 8.1 fixes (#38245)
- Fixed aliasing with cursor pagination (#38251)
- Fixed signed routes (#38249)
- Added cache_locks table to cache stub (#38152)
- Added queue:monitor command (#38168)
- Added twiceDailyAt schedule frequency (#38174)
- Added immutable date and datetime casting (#38199)
- Allow the php web server to run multiple workers (#38208)
- Added accepted_if validation rule (#38210)
- Fixed signed routes with expires parameter (#38111, 732c0e0)
- Remove call to deleted method in
Illuminate/Testing/TestResponse::statusMessageWithException()
(cde3662) - Fixed previous column for cursor pagination (#38203)
- Prevent assertStatus() invalid JSON exception for valid JSON response content (#38192)
- Bump AWS SDK to
^3.186.4
(#38216) - Implement
ReturnTypeWillChange
for some place (#38221, #38212, #38226) - Use actual countable interface on MessageBag (#38227)
- Remove hardcoded Carbon reference from scheduler event (#38063)
- Allow shift() and pop() to take multiple items from a collection (#38093)
- Added hook to configure broadcastable model event (5ca5768, aca6f90)
- Support a proxy URL for mix hot (#38118)
- Added
Illuminate/Validation/Rules/Unique::withoutTrashed()
(#38124) - Support job middleware on queued listeners (#38128)
- Model Broadcasting - Adding broadcastWith() and broadcastAs() support (#38137)
- Allow parallel testing without database creation (#38143)
- Fixed display of validation errors occurred when asserting status (#38088)
- Developer friendly message if no Prunable Models found (#38108)
- Fix running schedule:test on CallbackEvent (#38146)
- BelongsToMany->sync() will support touching for pivots when the result contains detached items (#38085)
- Ability to specify the broadcaster to use when broadcasting an event (#38086)
- Password Validator should inherit custom error message and attribute (#38114)
- Allow dynamically customizing connection for queued event listener (#38005, ebc3ce4)
- Added
@class
Blade directive (#38016) - Accept closure for retry() sleep (#38035)
- The controller can directly return the stdClass object (#38033)
- Make FilesystemAdapter macroable (#38030)
- Track exceptions and display them on failed status checks for dx (#38025)
- Display unexpected validation errors when asserting status (#38046)
- Ability to return the default value of a request whenHas and whenFilled methods (#38060)
- Added
Filesystem::replaceInFile()
method (#38069)
- Fixed passing cursor to pagination methods (#37996)
- Fixed issue with cursor pagination and Json resources (#38026)
- ErrorException: Undefined array key "exception" (#38059)
- Fixed unvalidated array keys without implicit attributes (#38052)
- Passthrough excluded uri's in maintenance mode (#38041)
- Allow for named arguments via dispatchable trait (#38066)
- Added ability to cancel notifications immediately prior to sending (#37930)
- Added the possibility of having "Prunable" models (#37889)
- Added support for both CommonMark 1.x and 2.x (#37954)
- Added
Illuminate/Validation/Factory::excludeUnvalidatedArrayKeys()
(#37943)
- Adds ResponseReceived events to async requests of HTTP Client (#37917)
- Fixed edge case causing a BadMethodCallExceptions to be thrown when using loadMissing() (#37871)
- Fixed undefined array key in SqlServerGrammar when using orderByRaw (#37859)
- Fixed facade isMock to recognise LegacyMockInterface (#37882)
- Reset the log context after each worker loop (#37865)
- Improve pretend run Doctrine failure message (#37879)
- Add context to subsequent logs (#37847)
- Added parameter casting for cursor paginated items (#37785, 31ebfc8)
- Added
Illuminate/Http/ResponseTrait::statusText()
(#37795) - Track a loop variable for sequence and pass it with count to closure (#37799)
- Added "precedence" order to route:list command (#37824)
- Remove ksort in pool results that modifies intended original order (#37775)
- Make sure availableIn returns positive values in
/Illuminate/Cache/RateLimiter::availableIn()
(#37809)- - Ensure alias is rebound when mocking items in the container in tests (#37810)
- Move primary after collate in
/MySqlGrammar.php
modifiers (#37815))
- Order of Modifiers Amended in MySqlGrammar (#37782)
- Added a queue:prune-failed command (#37696, 7aca658)
- Added
Illuminate/Filesystem/FilesystemManager::build()
(#37720, c21fc12) - Allow customising the event.stub file (#37761)
- Added
Illuminate/Collections/Collection::sliding()
andIlluminate/Collections/LazyCollection::sliding()
(#37751) - Make
Illuminate\Http\Client\Request
macroable (#37744) - Added GIF, WEBP, WBMP, BMP support to FileFactory::image() (#37743)
- Dispatch 'connection failed' event in http client (#37740)
- Adds a small fix for unicode with blade echo handlers (#37697)
- Solve the Primary Key issue in databases with sql_require_primary_key enabled (#37715)
- Removed unnecessary checks in RequiredIf validation, fixed tests (#37700)
- Replace non ASCII apostrophe in the email notification template (#37709)
- Change the order of the bindings for a Sql Server query with a offset and a subquery order by (#37728, 401928b)
- Bind mock instances as singletons so they are not overwritten (#37746)
- Encode objects when casting as JSON (#37759)
- Call on_stats handler in Http stub callbacks (#37738)
- Introduce scoped instances (#37521, 2971b64)
- Added whereContains AssertableJson method (#37631, 2d2d108)
- Added
Illuminate/Database/Connection::setRecordModificationState()
(ee1e6b4) - Added
match()
andmatchAll()
methods toIlluminate/Support/Str.php
(#37642) - Copy password rule to current_password (#37650)
- Allow tap() on Paginator (#37682)
- Revert of "Columns in the order by list must be unique" (#37649)
- Remove illuminate/foundation dependency from Password validation (#37648)
- Fixed callable password defaults in validator (0b1610f)
- Fixed dns_get_record loose check of A records for active_url rule (#37675)
- Type hinted arguments for Illuminate\Validation\Rules\RequiredIf (#37688)
- Fixed when passed object as parameters to scopes method (#37692)
- Allow Custom Notification Stubs (#37584)
- Added methods for indicating the write connection should be used (94dbf76)
- Added timestamp reference to schedule:run artisan command output (#37591)
- Columns in the order by list must be unique (#37582)
- Fire a trashed model event and listen to it for broadcasting events (#37618)
- Cast JSON strings containing single quotes (#37619)
- Fixed for cloning issues with PendingRequest object (#37596, 96518b9)
- Makes the retrieval of Http client transferStats safe (#37597)
- Fixed inconsistency in table names in validator (#37606)
- Fixes for Stringable for views (#37613)
- Fixed one-of-many bindings (#37616)
- Fixed infinity loop on transaction committed (#37626)
- Added missing fix to DatabaseRule::resolveTableName fix #37580 (#37621)
- Revert of "Columns in the order by list must be unique" (dc2f0bb)
- Introduce Conditional trait (#37504, 45ff23c, #37561)
- Allow multiple SES configuration with IAM Role authentication (#37523)
- Adds class handling for Blade echo statements (#37478)
- Added
Illuminate/Session/DatabaseSessionHandler::setContainer()
(7a71c29) - Allow connecting to read or write connections with the db command (#37548)
- Added assertDownloadOffered test method to TestResponse class (#37532)
- Added
Illuminate/Http/Client/Response::close()
(#37566) - Allow setting middleware on queued Mailables (#37568)
- Adds new RequestSent and ResponseReceived events to the HTTP Client (#37572)
- Rename protected method
Illuminate/Foundation/Console/StorageLinkCommand::removableSymlink()
toIlluminate/Foundation/Console/StorageLinkCommand::isRemovableSymlink()
(#37508) - Correct minimum Predis version to 1.1.2 (#37554)
- Columns in the order by list must be unique (#37550)
- More Convenient Model Broadcasting (#37491)
- Get queueable relationship when collection has non-numeric keys (#37556)
- Delegate lazy loading violation to method (#37480)
- Added
force
option toIlluminate/Foundation/Console/StorageLinkCommand
(#37501, 3e547d2)
- Fixed aggregates with having (#37487, c986e12)
- Bugfix passing errorlevel when command is run in background (#37479)
- Init the traits when the model is being unserialized (#37492)
- Relax the lazy loading restrictions (#37503)
- Added
Illuminate\Auth\Authenticatable::getAuthIdentifierForBroadcasting()
(#37408) - Added eloquent strict loading mode (#37363)
- Added default timeout to NotPwnedVerifier validator (#37440, 45567e0)
- Added beforeQuery to base query builder (#37431)
- Added
Illuminate\Queue\Jobs\Job::shouldFailOnTimeout()
(#37450) - Added
ValidatorAwareRule
interface (#37442) - Added model support for database assertions (#37459)
- Fixed eager loading one-of-many relationships with multiple aggregates (#37436)
- Improve signed url signature verification (#37432)
- Improve one-of-many performance (#37451)
- Update
Illuminate/Pagination/Cursor::parameter()
(#37458) - Reconnect the correct connection when using ::read or ::write (#37471, d1a32f9)
- Add default "_of_many" to join alias when relation name is table name (#37411)
- Allow dababase password to be null in
MySqlSchemaState
(#37418) - Accept any instance of Rule and not just Password in password rule (#37407)
- Support views in SQLServerGrammar (#37348)
- Added new assertDispatchedSync methods to BusFake (#37350, 414f382)
- Added withExists method to QueriesRelationships (#37302)
- Added ability to define default Password Rule (#37387, f7e5b1c)
- Allow sending a refresh header with maintenance mode response (#37385)
- Added loadExists on Model and Eloquent Collection (#37388)
- Added one-of-many relationship (inner join) (#37362)
- Avoid deprecated guzzle code (#37349)
- Make AssertableJson easier to extend by replacing self with static (#37380)
- Raise ScheduledBackgroundTaskFinished event to signal when a run in background task finishes (#37377)
- Added
Illuminate\Database\Eloquent\Model::updateQuietly()
(#37169) - Added
Illuminate\Support\Str::replace()
(#37186) - Added Model key extraction to id on whereKey() and whereKeyNot() (#37184)
- Added support for Pusher 6.x (#37223, 819db15)
- Added
Illuminate/Foundation/Http/Kernel::getMiddlewarePriority()
(#37271) - Added cursor pagination (aka keyset pagination) (#37216, #37315)
- Support mass assignment to SQL Server views (#37307)
- Added
Illuminate/Support/Stringable::unless()
(#37326)
- Fixed
Illuminate\Database\Query\Builder::offset()
with non numbers $value (#37164) - Treat missing UUID in failed Queue Job as empty string (failed driver = database) (#37251)
- Fixed fields not required with required_unless (#37262)
- SqlServer Grammar: Bugfixes for hasTable and dropIfExists / support for using schema names in these functions (#37280)
- Fix PostgreSQL dump and load for Windows (#37320)
- Add fallback when migration is not anonymous class (#37166)
- Ably expects clientId as string in
Illuminate\Broadcasting\Broadcasters\AblyBroadcaster::validAuthenticationResponse()
(#37249) - Computing controller middleware before getting excluding middleware (#37259)
- Update mime extension check (#37332)
- Added exception to chunkById() when last id cannot be determined (#37294)
- Added
Illuminate\Database\Eloquent\Builder::withOnly()
(#37144) - Added
Illuminate\Bus\PendingBatch::add()
(#37151)
- Fixed Cache store with a name other than 'dynamodb' (#37145)
- Added has environment variable to startProcess method in
ServeCommand
(#37142) - Some cast to int in
Illuminate\Database\Query\Grammars\SqlServerGrammar
(09bf145)
- Added
Illuminate\Collections\Collection::sole()
method (#37034) - Support
url
for php artisan db command (#37064) - Added
Illuminate\Foundation\Bus\DispatchesJobs::dispatchSync()
(#37063) - Added
Illuminate\Cookie\CookieJar::expire()
(#37072, fa3a14f) - Added
Illuminate\Database\DatabaseManager::setApplication()
(#37068) - Added
Illuminate\Support\Stringable::whenNotEmpty()
(#37080) - Added
Illuminate\Auth\SessionGuard::attemptWhen()
(#37090, e3fcd97) - Added password validation rule (#36960)
- Fixed
JsonResponse::fromJsonString()
double encoding string (#37076) - Fallback to primary key if owner key doesnt exist on model at all in
MorphTo
relation (a011109) - Fixes for PHP 8.1 (#37087, #37101)
- Do not execute beforeSending callbacks twice in HTTP client (#37116)
- Fixed nullable values for required_if (#37128, 86fd558)
- Schedule list timezone command (#37117)
- Added a
wordCount()
string helper (#36990) - Allow anonymous and class based migration coexisting (#37006)
- Added
Illuminate\Broadcasting\Broadcasters\PusherBroadcaster::setPusher()
(#37033)
- Fixed required_if boolean validation (#36969)
- Correctly merge object payload data in
Illuminate\Queue\Queue::createObjectPayload()
(#36998) - Allow the use of temporary views for Blade testing on Windows machines (#37044)
- Fixed
Http::withBody()
not being sent (#37057)
- Allow to retry jobs by queue name (#36898, f2d9b59, c351a30)
- Added strings to the
DetectsLostConnections.php
(4210258) - Allow testing of Blade components that return closures (#36919)
- Added anonymous migrations (#36906)
- Added
Session\Store::missing()
method (#36937) - Handle concurrent asynchronous requests in the HTTP client (#36948, 245a712)
- Added tinyText data type to Blueprint and to available database grammars (#36949)
- Added a method to remove a resolved view engine (#36955)
- Added
Illuminate\Database\Eloquent\Model::getAttributesForInsert()
protected method (9a9f59f, 314bf87)
- Fixed clone() on EloquentBuilder (#36924)
Model::delete()
throw LogicException not Exception (#36914)- Make pagination linkCollection() method public (#36959)
- Revert blade changes (#36902)
- Fixed escaping within quoted strings in blade (#36893)
- Call transaction callbacks after updating the transaction level (#36890, #36892)
- Support maxExceptions option on queued listeners (#36891)
- Added support useCurrentOnUpdate for MySQL datetime column types (#36817)
- Added
dispatch_sync()
helper (#36835) - Allowing skipping TransformRequests middlewares via Closure (#36856)
- Added type option to make controller command (#36853)
- Added missing return $this to
Illuminate\Support\Manager::forgetDrivers()
(#36859) - Added unfinished option to PruneBatchesCommand (#36877)
- Added a simple Str::repeat() helper function (#36887)
- Fixed getMultiple and increment / decrement on tagged cache (0d21194)
- Implement proper return types in cache increment and decrement (#36836)
- Fixed blade compiler regex issue (#36843, #36848)
- Added missing temporary_url when creating flysystem (#36860)
- Fixed PostgreSQL schema:dump when read/write hosts are arrays (#36881)
- Improve the exception thrown when JSON encoding response contents fails in
Response::setContent()
(#36851, #36868) - Revert isDownForMaintenance function to use file_exists() (#36889)
- Fixed setting DynamoDB credentials (#36822)
- Added support of DynamoDB in CI suite (#36749)
- Support username parameter for predis (#36762)
- Added missing months() to Wormhole (#36808)
- Deprecate MocksApplicationServices trait (#36716)
- Fixes missing lazy() and lazyById() on BelongsToMany and HasManyThrough relation query builder (#36758)
- Ensure the compiled view directory exists (#36772)
- Fix Artisan test method PendingCommand::doesntExpectOutput() always causing a failed test (#36806)
- FIXED: The use of whereHasMorph in a whereHas callback generates a wrong sql statements (#36801)
- Allow lazy collection to be instantiated from a generator (#36738)
- Use qualified column names in pivot query (#36720)
- Octane Prep (#36777)
- Remove useless loop in
Str::remove()
(#36722)
- Added more inspiring quotes (92b7bde)
- Added WSREP communication link failure for lost connection detection (#36668)
- Added "except-path" option to
route:list
command (#36619, 76e11ee) - Added
Illuminate\Support\Str::remove()
andIlluminate\Support\Stringable::remove()
methods (#36639, 7b0259f, 20e2470) - Added
Illuminate\Database\Eloquent\Relations\MorphPivot::getMorphType()
(#36640, 7e08215) - Added assertion to verify type of key in JSON (#36638)
- Added prohibited validation rule (#36667)
- Added strict comparison to distinct validation rule (#36669)
- Added
Illuminate\Translation\FileLoader::getJsonPaths()
(#36689) - Added
Illuminate\Support\Testing\Fakes\EventFake::assertAttached()
(#36690) - Added
lazy()
andlazyById()
methods toIlluminate\Database\Concerns\BuildsQueries
(#36699)
- Fixes the issue using cache:clear with PhpRedis and a clustered Redis instance. (#36665)
- Fix replacing required :input with null on PHP 8.1 in
Illuminate\Validation\Concerns\FormatsMessages::getDisplayableValue()
(#36622) - Fixed artisan schema:dump error (#36698)
- Adjust Fluent Assertions (#36620)
- Added timestamp reference to schedule:work artisan command output (#36621)
- Expect custom markdown mailable themes to be in mail subdirectory (#36673)
- Throw exception when unable to create LockableFile (#36674)
- Always prefer typesafe string comparisons (#36657)
- Added
Illuminate\Database\Connection::forgetRecordModificationState()
(#36617)
- Reverted "Container - detect circular dependencies" (332844e)
- Added broken pipe exception as lost connection error (#36601)
- Added missing option to resource (#36562)
- Introduce StringEncrypter interface (#36578)
- Fixed returns with Mail & Notification components (#36559)
- Stack driver fix: respect the defined processors in LogManager (#36591)
- Require the correct password to rehash it when logging out other devices (#36608, 1e61612)
- Allow nullable columns for
AsArrayObject/AsCollection
casts (#36526) - Accept callable class for reportable and renderable in exception handler (#36551)
- Container - detect circular dependencies (dd7274d, a712f72, 6f9bb4c)
- Initialize CronExpression class using new keyword (#36600)
- Use different config key for overriding temporary url host in AwsTemporaryUrl method (#36612)
- Changed
Illuminate\Queue\Middleware\ThrottlesExceptions
(b8a70e9)
Added
- Phpredis lock serialization and compression support (#36412, 10f1a93)
- Added Fluent JSON Assertions (#36454)
- Added methods to dump requests of the Laravel HTTP client (#36466)
- Added
ThrottlesExceptions
andThrottlesExceptionsWithRedis
job middlewares for unstable services (#36473, 21fee76, 36518, 37e48ba) - Added support to Eloquent Collection on
Model::destroy()
(#36497) - Added
rest
option tophp artisan queue:work
command (#36521, c6ea49c) - Added
prohibited_if
andprohibited_unless
validation rules (#36516) - Added class
argument
toIlluminate\Database\Console\Seeds\SeedCommand
(#36513)
- Fix validator treating null as true for (required|exclude)_(if|unless) due to loose
in_array()
check (#36504)
- Delete existing links that are broken in
Illuminate\Foundation\Console\StorageLinkCommand
(#36470) - Use user provided url in AwsTemporaryUrl method (#36480)
- Allow to override discover events base path (#36515)
- Make user policy command fix (Windows) (#36464)
- Fixed
formatWheres()
methods inDatabaseRule
(#36441)
- Added new line to
DetectsLostConnections
(#36373) - Added
Illuminate\Cache\RateLimiting\Limit::perMinutes()
(#36352, 86d0a5c) - Make Database Factory macroable (#36380)
- Added stop on first failure for Validators (39e1f84)
- Added
containsOneItem()
method to Collections (#36428, 5b7ffc2)
- Respect custom route key with explicit route model binding (#36375)
- Add Buffered Console Output (#36404)
- Don't flash 'current_password' input (#36415)
- Check for context method in Exception Handler (#36424)
- Support username parameter for predis (#36299)
- Adds "setUpTestDatabase" support to Parallel Testing (#36301)
- Added support closures in sequences (3c66f6c)
- Added gate evaluation event (0c6f5f7)
- Added a
collect
method to the HTTP Client response (#36331) - Allow Blade's service injection to inject services typed using class name resolution (#36356)
- Fixed: Using withoutMiddleware() and a closure-based middleware on PHP8 throws an exception (#36293)
- Fixed: The label for page number in pagination links should always be a string (#36292)
- Clean up custom Queue payload between tests (#36295)
- Fixed flushDb (cache:clear) for redis clusters (#36281)
- Fixed retry command for encrypted jobs (#36334, 2fb5e44)
- Make sure
trait_uses_recursive
returns an array (#36335)
- Make use of specified ownerKey in MorphTo::associate() (#36303)
- Update pusher deps and update broadcasting (3404185)
- Revert "[8.x] Clean up custom Queue payload between tests" (#36287)
- Allow users to specify configuration keys to be used for primitive binding (#36241)
- ArrayObject + Collection Custom Casts (#36245)
- Add view path method (af3a651)
- Fix undefined property with sole query (#36216)
- Resolving non-instantiables corrupts
Container::$with
(#36212) - Fix attribute nesting on anonymous components (#36240)
- Ensure
$prefix
is a string (#36254) - Add missing import (#34569)
- Align PHP 8.1 behavior of
e()
(#36262) - Ensure null values won't break on PHP 8.1 (#36264)
- Handle directive
$value
as a string (#36260) - Use explicit flag as default sorting (#36261)
- Fix middleware group display (d9e28dc)
- Conditionally merge classes into a Blade Component attribute bag (#36131)
- Allow adding multiple columns after a column (#36145)
- Add query builder
chunkMap
method (#36193, 048ac6d)
- Update CallQueuedClosure to catch Throwable/Error (#36159)
- Allow components to use custom attribute bag (#36186)
- Set process timeout to null for load mysql schema into database (#36126)
- Don't pluralise string if string ends with none alphanumeric character (#36137)
- Add query log methods to the DB facade (#36177)
- Add commonmark as recommended package for
Illuminate\Support
(#36171) - Fix Eager loading partially nullable morphTo relations (#36129)
- Make height of image working with yahoo (#36201)
- Make
sole()
relationship friendly (#36200) - Make layout in mail responsive in Gmail app (#36198)
- Fixes parallel testing when a database is configured using URLs (#36204)
- Fixed merge conflict in
src/Illuminate/Foundation/Console/stubs/exception-render-report.stub
(#36123)
- Allow to fillJsonAttribute with encrypted field (#36063)
- Added
Route::missing()
(#36035) - Added
Illuminate\Support\Str::markdown()
andIlluminate\Support\Stringable::markdown()
(#36071) - Support retrieving URL for Sftp adapter (#36120)
- Fixed issues with dumping PostgreSQL databases that contain multiple schemata (#36046)
- Fixes job batch serialization for PostgreSQL (#36081)
- Fixed
Illuminate\View\ViewException::report()
(#36110)
- Typecast page number as integer in
Illuminate\Pagination\AbstractPaginator::resolveCurrentPage()
(#36055) - Changed
Illuminate\Testing\ParallelRunner::createApplication()
(1c11b78)
- Added
Stringable::pipe
& make Stringable tappable (#36017) - Accept a command in object form in Bus::assertChained (#36031)
- Adds parallel testing (#36034)
- Make Listeners, Mailables, and Notifications accept ShouldBeEncrypted (#36036)
- Support JSON encoding Stringable (#36012)
- Support for escaping bound attributes (#36042)
- Added
Illuminate\Foundation\Application::useLangPath()
(#36044)
- Pipe through new render and report exception methods (#36032)
- Fixed issue with dumping schema from a postgres database using no default schema (#35966, 7be50a5)
- Fixed worker --delay option (#35991)
- Added support of PHP 7.3 to RateLimiter middleware(queue) serialization (#35986)
- Fixed
Illuminate\Foundation\Http\Middleware\TransformsRequest::cleanArray()
(#36002) - ModelNotFoundException: ensure that the model class name is properly set (#36011)
- Fixed bus fake (e720279)
- Fixed type error in
Illuminate\Http\Concerns\InteractsWithContentTypes::isJson()
(#35956) - Fixed
Illuminate\Collections\Collection::sortByMany()
(#35950) - Fixed Limit expected bindings (#35972, 006873d)
- Fixed serialization of rate limited with redis middleware (#35971)
- Fixed empty html mail (#35941)
- Added
Illuminate\Database\Concerns\BuildsQueries::sole()
(#35869, 29c7dae, #35908, #35902, #35912) - Added default parameter to throw_if / throw_unless (#35890)
- Added validation support for TeamSpeak3 URI scheme (#35933)
- Fixed extra space on blade class components that are inline (#35874)
- Fixed serialization of rate limited middleware (f3d4dcb, #35916)
- Allow a specific seeder to be used in tests in
Illuminate\Foundation\Testing\RefreshDatabase::migrateFreshUsing()
(#35864) - Pass $key to closure in Collection and LazyCollection's reduce method as well (#35878)
- Limit expected bindings (#35865)
- Added new lines to
DetectsLostConnections
(#35752, #35790) - Added
Illuminate\Support\Testing\Fakes\EventFake::assertNothingDispatched()
(#35835) - Added reduce with keys to collections and lazy collections (#35839)
- Fixed error from missing null check on PHP 8 in
Illuminate\Validation\Concerns\ValidatesAttributes::validateJson()
(#35797) - Fix bug with RetryCommand (4415b94, #35828)
- Fixed
Illuminate\Testing\PendingCommand::expectsTable()
(#35820) - Fixed
morphTo()
attempting to map an empty string morph type to an instance (#35824)
- Update
Illuminate\Http\Resources\CollectsResources::collects()
(1fa20dd) - "null" constraint prevents aliasing SQLite ROWID (#35792)
- Allow strings to be passed to the
report
function (#35803)
- Added command to clean batches table (#35694, 33f5ac6)
- Added item to list of causedByLostConnection errors (#35744)
- Make it possible to set Postmark Message Stream ID (#35755)
- Fixed
php artisan db
command for the Postgres CLI (#35725) - Fixed OPTIONS method bug with use same path and diff domain when cache route (#35714)
- Ensure DBAL custom type doesn't exists in
Illuminate\Database\DatabaseServiceProvider::registerDoctrineTypes()
(#35704) - Added missing
dispatchAfterCommit
toDatabaseQueue
(#35715) - Set chain queue when inside a batch (#35746)
- Give a more meaningul message when route parameters are missing (#35706)
- Added table prefix to
Illuminate\Database\Console\DumpCommand::schemaState()
(4ffe40f) - Refresh the retryUntil time on job retry (#35780, 45eb7a7)
- Added
Illuminate\Database\DBAL\TimestampType
(a5761d4, cff3705 382445f, 810047e) - Added ability to specify a separate lock connection (#35621, 3d95235)
- Added
Illuminate\Database\Eloquent\Relations\Concerns\InteractsWithPivotTable::syncWithPivotValues()
(#35644, 49b3ce0)
- Fixed
Illuminate\Validation\Concerns\ValidatesAttributes::validateJson()
for PHP8 (#35646) - Fixed
assertCookieExpired()
andassertCookieNotExpired()
methods inIlluminate\Testing\TestResponse
(#35637) - Fixed: Account for a numerical array of views in Mailable::renderForAssertions() (#35662)
- Catch DecryptException with invalid X-XSRF-TOKEN in
Illuminate\Foundation\Http\Middleware\VerifyCsrfToken
(#35671)
- Check configuration in
Illuminate\Foundation\Console\Kernel::scheduleCache()
(a253d0e) - Modify
Model::mergeCasts
to return$this
(#35683) - Clear a cached user in RequestGuard if a request is changed (#35692)
- Delay pushing jobs to queue until database transactions are committed (#35422, 095d922, fa34d93, db0d0ba, d9b803a, 3e55841)
- Added
Illuminate\View\ComponentAttributeBag::has()
(#35562) - Create ScheduleListCommand (#35574, 97d7834)
- Introducing Job Encryption (#35527, f80f647, 8c16156)
- Handle
Throwable
exceptions onIlluminate\Redis\Limiters\ConcurrencyLimiter::block()
(#35546) - Fixed PDO passing in SqlServerDriver (#35564)
- When following redirects, terminate each test request in proper order (#35604)
- Added
Illuminate\Http\Client\Factory::assertSentInOrder()
(#35525, d257ce2, 2fd1411) - Added
Illuminate\Http\Client\Response::handlerStats()
(#35520) - Added support for attaching existing model instances in factories (#35494)
- Added
assertChained()
andassertDispatchedWithoutChain()
methods toIlluminate\Support\Testing\Fakes\BusFake
class (#35523, f1b8cac, 236c67d) - Allow testing of html and plain text bodies right off mailables (afb858a, b7391e4)
- Fixed an issue with the database queue driver (#35449)
- Added: Transaction aware code execution (#35373, 9565598)
- Added dd() and dump() to the request object (#35384, c43e08f)
- Enqueue all jobs using a enqueueUsing method (#35415, 010d4d7, #35437)
- Fix issue with polymorphic morphMaps with literal 0 (#35364)
- Fixed Self-Relation issue in withAggregate method (#35392, aec5cca, #35394)
- Fixed Use PHP_EOL instead of
\n
in PendingCommand (#35409) - Fixed validating image/jpeg images after Symfony/Mime update (#35419)
- Fixed fail to morph with custom casting to objects (#35420)
- Fixed
Illuminate\Collections\Collection::sortBy()
(307f6fb) - Don't overwrite minute and hour when specifying a time with twiceMonthly() (#35436)
- Make DownCommand retryAfter available to prerendered view (#35357, b1ee97e)
- Set default value on cloud driver (0bb7fe4)
- Update Tailwind pagination focus styles (#35365)
- Redis: allow to pass connection name (#35402)
- Change Wormhole to use the Date Factory (#35421)
- Fixed reflection exception in
Illuminate\Routing\Router::gatherRouteMiddleware()
(c6e8357)
- Added
Illuminate\Console\Concerns\InteractsWithIO::withProgressBar()
(4e52a60, 169fd2b) - Added
Illuminate\Console\Concerns\CallsCommands::callSilently()
as alias forcallSilent()
(7f3101b, 0294433) - Added option to release unique job locks before processing (#35255, b53f13e)
- Added ably broadcaster (e0f3f8e, 6381aa9)
- Added ability to define table name as default morph type (#35257)
- Allow overriding the MySQL server version for database queue driver (#35263)
- Added
Illuminate\Foundation\Testing\Wormhole::back()
(#35261) - Support delaying notifications per channel (#35273)
- Allow sorting on multiple criteria (#35277, 53eb307)
- Added
Illuminate/Database/Console/DbCommand.php
command (#35304, b559b3e) - Added Collections
splitIn
methods (#35295)
- Fixed rendering of notifications with config custom theme (325a335)
- Fixing BroadcastException message in PusherBroadcaster@broadcast (#35290)
- Fixed generic DetectsLostConnection string (#35323)
- Fixed SQL Server command generation (#35317)
- Fixed route model binding on cached closure routes (eb3e262)
- Disable CSRF on broadcast route (acb4b77)
- Easily set a null cache driver (#35262)
- Updated
aws/aws-sdk-php
suggest to^3.155
(#35267) - Ensure ShouldBeUniqueUntilProcessing job lock is released once (#35270)
- Rename qualifyColumn to qualifyPivotColumn in BelongsToMany & MorphToMany (#35276)
- Check if AsPivot trait is used instead of Pivot Model in
Illuminate\Database\Eloquent\Relations\BelongsToMany
(#35271) - Avoid no-op database query in Model::destroy() with empty ids (#35294)
- Use --no-owner and --no-acl with pg_restore (#35309)
- Added lock support for file and null cache drivers (#35139, a345185)
- Added a
doesntExpectOutput
method for console command testing (#35160, c90fc5f) - Added support of MorphTo relationship eager loading constraints (#35190)
- Added
Illuminate\Http\ResponseTrait::withoutCookie()
(e9483c4) - Use dynamic app namespace in Eloquent Factory instead of App\ string (#35204, 4885bd2)
- Added
read
/unread
scopes to database notifications (#35215) - Added
classBasename()
method toStringable
(#35219) - Added before resolving callbacks to container (#35228)
- Adds the possibility of testing file upload content (#35231)
- Added lost connection messages for MySQL persistent connections (#35224)
- Added Support DBAL v3.0 (#35236)
- Update MySqlSchemaState.php to support MariaDB dump (#35184)
- Fixed pivot and morphpivot fresh and refresh methods (#35193)
- Fixed pivot restoration (#35218)
- Updated
EmailVerificationRequest.php
to check if user is not already verified (#35174) - Make
Validator::parseNamedParameters()
public (#35183) - Ignore max attempts if retryUntil is set in
queue:work
(#35214) - Explode string channels on
Illuminate/Log/LogManager::createStackDriver()
(e5b86f2)
- Added ability to dispatch unique jobs (#35042, 2123e60)
- Added
Model::encryptUsing()
(#35080) - Added support to MySQL dump and import using socket (#35083, c43054b)
- Allow custom broadcastWith in notification broadcast channel (#35142)
- Added
Illuminate\Routing\CreatesRegularExpressionRouteConstraints::whereAlphaNumeric()
(#35154)
- Fixed typo in
make:seeder
command name inside ModelMakeCommand (#35107) - Fix SQL Server grammar for upsert (missing semicolon) (#35112)
- Respect migration table name in config when dumping schema (110eb15)
- Respect theme when previewing notification (ed4411d)
- Fix appendable attributes in Blade components (#35131)
- Remove decrypting array cookies from cookie decrypting (#35130)
- Turn the eloquent collection into a base collection if mapWithKeys loses models (#35129)
- Move dispatching of DatabaseRefreshed event to fire before seeders are run (#35091)
- Handle returning false from reportable callback (55f0b5e)
- Update
Illuminate\Database\Schema\Grammars\MySqlGrammar::typeTimestamp()
(#35143) - Remove expectedTables after converting to expectedOutput in PendingCommand (#35163)
- Change SQLite schema command environment variables to work on Windows (#35164)
- Added
loadMax()
|loadMin()
|loadSum()
|loadAvg()
methods toIlluminate\Database\Eloquent\Collection
. AddedloadMax()
|loadMin()
|loadSum()
|loadAvg()
|loadMorphMax()
|loadMorphMin()
|loadMorphSum()
|loadMorphAvg()
methods toIlluminate\Database\Eloquent\Model
(#35029) - Modify
Illuminate\Database\Eloquent\Concerns\QueriesRelationships::has()
method to support MorphTo relations (#35050) - Added
Illuminate\Support\Stringable::chunk()
(#35038)
- Fixed a few issues in
Illuminate\Database\Eloquent\Concerns\QueriesRelationships::withAggregate()
(#35061, #35063)
- Set chain
queue
|connection
|delay
only when explicitly configured in (#35047)
- Remove redundant unreachable return statements in some places (#35053)
- Fixed
Illuminate\Database\Eloquent\Concerns\QueriesRelationships::withAggregate()
(20b0c6e)
- Added ability to create observers with custom path via
make:observer
command (#34911) - Added
Illuminate\Database\Eloquent\Factories\Factory::lazy()
(#34923) - Added ability to make cast with custom stub file via
make:cast
command (#34930) - ADDED: Custom casts can implement increment/decrement logic (#34964)
- Added encrypted Eloquent cast (#34937, #34948)
- Added
DatabaseRefreshed
event to be emitted after database refreshed (#34952, f31bfe2) - Added
withMax()
|withMin()
|withSum()
|withAvg()
methods toIlluminate/Database/Eloquent/Concerns/QueriesRelationships
(#34965, f4e4d95, #35004) - Added
explain()
toQuery\Builder
andEloquent\Builder
(#34969) - Make
multiple_of
validation rule handle non-integer values (#34971) - Added
setKeysForSelectQuery
method and use it when refreshing model data in Models (#34974) - Full PHP 8.0 Support (#33388)
- Added
Illuminate\Support\Reflector::isCallable()
(#34994, 8c16891, 31917ab, 11cfa4d, #34999) - Added route regex registration methods (#34997, 3d405cc, c2df0d5)
- Added dontRelease option to RateLimited and RateLimitedWithRedis job middleware (#35010)
- Fixed check of file path in
Illuminate\Database\Schema\PostgresSchemaState::load()
(268237f) - Fixed:
PhpRedis (v5.3.2)
cluster - set default connection context tonull
(#34935) - Fixed Eloquent Model
loadMorph
andloadMorphCount
methods (#34972) - Fixed ambigious column on many to many with select load (5007986)
- Fixed Postgres Dump (#35018)
- Changed
make:factory
command (#34947, 4f38176) - Make assertSee, assertSeeText, assertDontSee and assertDontSeeText accept an array (#34982, 2b98bcc)
- Fixed
bound()
method (a7759d7)
- Added job middleware to prevent overlapping jobs (#34794, eed05b4)
- Bring Rate Limiters to Jobs (#34829, ae00294)
- Added
multiple_of
custom replacer in validator (#34858) - Preserve eloquent collection type after calling ->fresh() (#34848)
- Provisional support for PHP 8.0 for 6.x (Changed some code in 8.x) (#34884, 28bb76e)
- Fixed
fresh()
andrefresh()
on pivots and morph pivots (#34836) - Fixed config
batching
typo (#34852) - Fixed
Illuminate\Queue\Console\RetryBatchCommand
for un-found batch id (#34878)
- Change
loadRoutesFrom()
to accept group $attributes (#34866)
- Allow for chains to be added to batches (#34612, 7b4a9ec)
- Added
is()
method to 1-1 relations for model comparison (#34693, 7ba2577) - Added
upsert()
to Eloquent and Base Query Builders (#34698, #34712, 58a0e1b) - Support psql and pg_restore commands in schema load (#34711)
- Added
Illuminate\Database\Schema\Builder::dropColumns()
method on the schema class (#34720) - Added
yearlyOn()
method to scheduler (#34728) - Added
restrictOnDelete()
method to ForeignKeyDefinition class (#34752) - Added
newLine()
method toInteractsWithIO
trait (#34754) - Added
isNotEmpty()
method to HtmlString (#34774) - Added
delay()
to PendingChain (#34789) - Added "multiple_of" validation rule (#34788)
- Added custom methods proxy support for jobs
dispatch()
(#34781) - Added
QueryBuilder::clone()
(#34780) - Support bus chain on fake (a952ac24)
- Added missing force flag to
queue:clear
command (#34809) - Added
dropConstrainedForeignId()
to `Blueprint (#34806) - Implement
supportsTags()
on the Cache Repository (#34820) - Added
canAny
to user model (#34815) - Added
when()
andunless()
methods to MailMessage (#34814)
- Fixed collection wrapping in
BelongsToManyRelationship
(9245807) - Fixed
LengthAwarePaginator
translations issue (#34714)
- Improve
schedule:work
command (#34736, bbddba2) - Guard against invalid guard in
make:policy
(#34792) - Fixed router inconsistency for namespaced route groups (#34793)
- Added support
times()
withraw()
fromIlluminate\Database\Eloquent\Factories\Factory
(#34667) - Added
Illuminate\Pagination\AbstractPaginator::through()
(#34657) - Added
extendsFirst()
method similar toincludesFirst()
to view (#34648) - Allowed
Illuminate\Http\Client\PendingRequest::attach()
method to accept many files (#34697, 1bb7ad6) - Allowed serializing custom casts when converting a model to an array (#34702)
- Added missed RESET_THROTTLED constant to Password Facade (#34641)
- Fixed queue clearing when blocking (#34659)
- Fixed missing import in TestView.php (#34677)
- Use
getRealPath
to ensure console command class names are generated correctly inIlluminate\Foundation\Console\Kernel
(#34653) - Added
pg_dump --no-owner
and--no-acl
to avoid owner/permission issues inIlluminate\Database\Schema\PostgresSchemaState::baseDumpCommand()
(#34689) - Fixed
queue:failed
command when Class not exists (#34696)
- Increase performance of
Str::before()
by over 60% (#34642)
- Proxy URL Generation in
VerifyEmail
(#34572) - Added
Illuminate\Collections\Traits\EnumeratesValues::pipeInto()
(#34600) - Added
Illuminate\Http\Client\PendingRequest::withUserAgent()
(#34611) - Added
schedule:work
command (#34618) - Added support for appendable (prepends) component attributes (09b887b, 53fbc9f)
- Fixed
Illuminate\Http\Client\Response::throw()
(#34597) - Fixed breaking change in migrate command (b2a3641)
- Changing the dump and restore method for a PostgreSQL database (#34293)
- Remove type hints (1b3f62a)
- Added
tg://
protocol in "url" validation rule (#34464) - Allow dynamic factory methods to obey newFactory method on model (#34492, 4708e9e)
- Added
no-reload
option toserve
command (9cc2622) - Added
perHour()
andperDay()
methods toIlluminate\Cache\RateLimiting\Limit
(#34530) - Added
Illuminate\Http\Client\Response::onError()
(#34558, d034e2c) - Added
X-Message-ID
toMailgun
andSes Transport
(#34567)
- Fixed incompatibility with Lumen route function in
Illuminate\Session\Middleware\StartSession
(#34491) - Fixed: Eager loading MorphTo relationship does not honor each models
$keyType
(#34531, c3f44c7) - Fixed translation label ("Pagination Navigation") for the Tailwind blade (#34568)
- Fixed save keys on increment / decrement in Model (77db028)
- Allow modifiers in date format in Model (#34507)
- Allow for dynamic calls of anonymous component with varied attributes (#34498)
- Cast
Expression
as string so it can be encoded (#34569)
- Added
Illuminate\Collections\LazyCollection::takeUntilTimeout()
(0aabf24) - Added
--schema-path
option tomigrate:fresh
command (#34419)
- Fixed problems with dots in validator (#34355)
- Maintenance mode: Fix empty Retry-After header (#34412)
- Fixed bug with error handling in closure scheduled tasks (#34420)
- Don't double escape on
ComponentTagCompiler.php
(12ba0d9) - Fixed
mysqldump: unknown variable 'column-statistics=0
for MariaDB schema dump (#34442)
- Allow clearing an SQS queue by
queue:clear
command (#34383, de811ea) - Added
Illuminate\Foundation\Auth\EmailVerificationRequest
(4bde31b) - Auto handle
Jsonable
values passed tocastAsJson()
(#34392) - Added
crossJoinSub()
method to the query builder (#34400) - Added
Illuminate\Session\Store::passwordConfirmed()
(fb3f45a)
- Check for view existence first in
Illuminate\Mail\Markdown::render()
(5f78c90) - Guess the model name when using the
make:factory
command (#34373)
- Fixed
minimal.blade.php
(#34379) - Don't double escape on ComponentTagCompiler.php (ec75487)
- Fixed dots in attribute names in
DynamicComponent
(2d1d962)
- Show warning when view exists when using artisan
make:component
(#34376, 0ce75e0) - Call the booting/booted callbacks from the container (#34370)
- Added
Illuminate\Foundation\Testing\Concerns\InteractsWithDatabase::castAsJson()
(#34302) - Handle array hosts in
Illuminate\Database\Schema\MySqlSchemaState
(0920c23) - Added
Illuminate\Pipeline\Pipeline::setContainer()
(#34343) - Allow including a closure in a queued batch (#34333)
- Fixed broken Seeder (9e4a866)
- Bumped minimum vlucas/phpdotenv version (#34336)
- Pass an instance of the job to queued closures (#34350)
- Do not used
now
helper inIlluminate/Cache/DatabaseLock::expiresAt()
(#34262) - Change placeholder in
Illuminate\Database\Schema\MySqlSchemaState::load()
(#34303) - Fixed bug in dynamic attributes
Illuminate\View\ComponentAttributeBag::setAttributes()
(93f4613) - Fixed
Illuminate\View\ComponentAttributeBag::whereDoesntStartWith()
(#34329) - Fixed
Illuminate\Routing\Middleware\ThrottleRequests::handleRequestUsingNamedLimiter()
(#34325)
- Create Faker when a Factory is created (#34298)
- Added
Illuminate\Database\Eloquent\Factories\Factory::raw()
(#34278) - Added
Illuminate\Database\Eloquent\Factories\Factory::createMany()
(#34285, 69072c7) - Added the
Countable
interface toAssertableJsonString
(#34284)
- Fixed the new maintenance mode (#34264)
- Optimize command can also cache view (#34287)
- Allow
Illuminate\Collections\Collection::implode()
when instance ofStringable
(#34271)
- Fixed
DatabaseUuidFailedJobProvider::find()
job record structure (#34251) - Cast linkCollection to array in JSON pagination responses (#34245)
- Change the placeholder of schema dump according to symfony placeholder in
MySqlSchemaState::dump()
(#34261) - Fixed problems with dots in validator (8723739)
- Added links property to JSON pagination responses (13751a1)
- Fixed bugs with factory creation in
FactoryMakeCommand
(c7186e0)
- Update
Illuminate\Database\Schema\MySqlSchemaState::executeDumpProcess()
(#34233)
- Support array syntax in
Illuminate\Routing\Route::uses()
(f80ba11)
- Give shadow a rounded edge to match content in
tailwind.blade.php
(#34198) - Pass the request to the renderable callback in
Illuminate\Foundation\Exceptions\Handler::render()
(#34200) - Update
Illuminate\Database\Schema\MySqlSchemaState
(d67be130, c87794f) - Respect local env in
Illuminate\Foundation\Console\ServeCommand::startProcess()
(75e792d)
Check the upgrade guide in the Official Laravel Upgrade Documentation. Also you can see some release notes in the Official Laravel Release Documentation.