- 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.