Laravel Release Notes

Last updated: Apr 7, 2026

  • Apr 7, 2026
    • Date parsed from source:
      Apr 7, 2026
    • First seen by Releasebot:
      Apr 7, 2026
    Laravel logo

    Laravel

    v13.4.0

    Laravel fixes queue, request, validation, and string handling issues while adding FormRequest strict mode, job inspection helpers, Carbon overflow options, and better attribute support across dispatching and notifications.

    • [13.x] Fix missing Illuminate\Queue\Attributes\Delay attribute by @fadez in #59504
    • [13.x] Fix $request->interval() failing with very small float values by @SanderMuller in #59502
    • [13.x] Add pint.json to export-ignore by @axlon in #59497
    • [13.x] Add --ignore-scripts to yarn in BroadcastingInstallCommand by @sumaiazaman in #59494
    • [13.x] Fix static closure binding in remaining manager classes by @sumaiazaman in #59493
    • [13.x] Fix CollectedBy attribute not resolving through abstract parent classes by @jackbayliss in #59488
    • [13.x] Fix: Allow runtime property overrides (onQueue) to take precedence over class attributes by @niduranga in #59468
    • [13.x] Use #[Delay] attribute in Bus Dispatcher by @sumaiazaman in #59514
    • [13.x] Use #[Delay] attribute in NotificationSender by @sumaiazaman in #59513
    • [13.x] Add overflow option to Carbon plus and minus by @lucasmichot in #59509
    • [13.x] Fix: respect null redirect in unauthenticated exception handler by @timmylindh in #59505
    • [13.x] Fix TypeError in starts_with/ends_with validation rules on non-string values by @sumaiazaman in #59541
    • [13.x] allow null to be passed directly to redirectGuestsTo() by @timmylindh in #59526
    • Revert "[13.x] Remove unnecessary clone in SessionManager to prevent duplicate Redis connections" by @taylorotwell in #59542
    • [13.x] Fix deprecation warning in Contains and DoesntContain rules when values contain null by @sumaiazaman in #59561
    • [13.x] Fix Str::markdown() and Str::inlineMarkdown() crash on null input by @sumaiazaman in #59554
    • [13.x] Add queue methods to inspect jobs by @jackbayliss in #59511
    • Feature/form request strict mode by @NurullahDemirel in #59430
    • Bump vite from 7.3.1 to 7.3.2 in /src/Illuminate/Foundation/resources/exceptions/renderer by @dependabot[bot] in #59571
    • [13.x] Fix deprecation warning in In and NotIn rules when values contain null by @sumaiazaman in #59576
    • [13.x] Add flushState to FormRequest to reset global strict mode between tests by @sumaiazaman in #59574
    • [13.x] Fix #[WithoutRelations] queue attribute not being inherited by child classes by @stevebauman in #59568
    Original source Report a problem
  • Apr 1, 2026
    • Date parsed from source:
      Apr 1, 2026
    • First seen by Releasebot:
      Apr 1, 2026
    Laravel logo

    Laravel

    v13.3.0

    Laravel adds a broad round of 13.x improvements across queues, scheduling, mail, URI handling, collections, and model behavior, while also tightening performance, docs, and bug fixes. It also expands enum support and adds new testing helpers and events.

    • [13.x] Forward releaseOnTerminationSignals through schedule groups by @jackbayliss in #59357
    • [13.x] Fix sub-minute scheduling skips at minute boundaries by @JoshSalway in #59331
    • [13.x] Display memory usage in verbose queue worker output by @jackbayliss in #59379
    • [13.x] Update WithoutOverlapping@shared() for clarity by @cosmastech in #59375
    • [13.x] Fix dependency injection of faked queueing dispatcher by @axlon in #59378
    • [13.x] Fix incrementEach/decrementEach to scope to model instance by @JoshSalway in #59376
    • [13.x] Add array value types to Support module docblocks by @Anthony14FR in #59383
    • [13.x] Add lost connection to WorkerStopReason by @jackbayliss in #59370
    • [13.x] MariaDbSchemaState uses mysql --version for client detection instead of mariadb --version by @kylemilloy in #59360
    • [13.x] Add enum support to QueueManager connection methods by @sumaiazaman in #59389
    • [13.x] Setup rector by @lucasmichot in #59385
    • [13.x] Improve Arr::whereNotNull() docs by @axlon in #59411
    • [13.x] Pass request to afterResponse callback by @bilfeldt in #59410
    • [13.x] Add isNotEmpty() method to Uri class by @sumaiazaman in #59408
    • [13.x] Add missing capitalize parameter to Stringable::initials() by @sumaiazaman in #59407
    • [13.x] Fix trait initializer collision with Attribute parsing by @sadique-cws in #59404
    • [13.x] Add session to supported drivers comment by @jackbayliss in #59399
    • [13.x] Add ->file() method to $request->safe() by @SanderMuller in #59396
    • [13.x] Add enum support to LogManager channel and driver methods by @sumaiazaman in #59391
    • [13.x] Fix MorphTo eager load matching when ownerKey is null and result key is a non-primitive by @wietsewarendorff in #59394
    • [13.x] Remove unnecessary clone in SessionManager to prevent duplicate Redis connections by @JoshSalway in #59323
    • [13.x] Use FQCN for Str in exception renderer blade templates by @bankorh in #59412
    • Allow variadic args for model attributes by @jasonmccreary in #59421
    • [13.x] CollectedBy Attribute should follow inheritence by @jackbayliss in #59419
    • [13.x] Fix deprecation notice in JSON:API resources by @alihamze in #59418
    • [13.x] Add withoutFragment() method to Uri class by @sumaiazaman in #59413
    • [13.x] Fix macros with static closures by @FeBe95 in #59414
    • [13.x] Fix sum() docblock to include key parameter in callback signature by @sumaiazaman in #59444
    • [13.x] Add assertHasNoAttachments() method to Mailable by @sumaiazaman in #59443
    • [13.x] Add a driver method to the MailFake class by @kevinb1989 in #59448
    • [13.x] Cache getLockForPopping() result in DatabaseQueue by @sumaiazaman in #59435
    • [13.x] prefer new Collection() over collect() helper by @browner12 in #59453
    • [13.x] remove unnecessary array_flip() calls by @browner12 in #59452
    • Make Collection methods compatible with extended subclass constructors by @ProjektGopher in #59455
    • [13.x] UnitTest test attribute by @cosmastech in #59432
    • [13.x] prefer isset() over in_array() for better performance by @browner12 in #59457
    • [13.x] remove temporary variable by @browner12 in #59456
    • [13.x] Add BatchStarted event by @jackbayliss in #59458
    • [13.x] Preserve URI fragment when decoding query string by @Nipun404 in #59481
    • fix: allow returning Stringable objects in casts()-method by @Bloemendaal in #59479
    • [13.x] Fix manager breaking when called with static closure by @axlon in #59470
    • Prevents installed package from executing malicious code via postinstall in install:broadcasting command by @duncanmcclean in #59485
    Original source Report a problem
  • All of your release notes in one feed

    Join Releasebot and get updates from Laravel and hundreds of other software products.

  • Mar 26, 2026
    • Date parsed from source:
      Mar 26, 2026
    • First seen by Releasebot:
      Mar 27, 2026
    Laravel logo

    Laravel

    v12.56.0

    Laravel fixes schedule:list timezone display, validation wildcard message errors, and mocked class typing.

    • [12.x] schedule:list display expression in the correct timezone by @xiCO2k in #59307
    • [12.x] Fix validation wildcard array message type error by @sadique-cws in #59339
    • Preserve class type of mocked classes by @AJenbo in #59353
    Original source Report a problem
  • Mar 26, 2026
    • Date parsed from source:
      Mar 26, 2026
    • First seen by Releasebot:
      Mar 27, 2026
    Laravel logo

    Laravel

    v11.51.0

    Laravel fixes schedule:list to display expressions in the correct timezone.

    [11.x] schedule:list display expression in the correct timezone by @xiCO2k in #59340

    Original source Report a problem
  • Mar 24, 2026
    • Date parsed from source:
      Mar 24, 2026
    • First seen by Releasebot:
      Mar 25, 2026
    Laravel logo

    Laravel

    v13.2.0

    Laravel ships queue enum support for #[Queue] and #[Connection], adds expressive attributes and enum-friendly attribute passing, improves scheduler and exception handling, and delivers performance and worker lifecycle fixes across SQL bindings, Octane, and overlapping jobs.

    • feat(queue): support enums in #[Queue] and #[Connection] by @innocenzi in #59278
    • Improve raw SQL binding substitution performance by @gufoe in #59277
    • [13.x] fix: add missing negate for SeeInHtml assertion by @jesperbeisner in #59303
    • [13.x] Allow for passing enums to attributes by @riesjart in #59297
    • [13.x] Add releaseOnSignal param to withoutOverlapping by @jackbayliss in #59298
    • Add symmetrical, expressive attributes by @jasonmccreary in #59284
    • [13.x] Fix LazyPromise::wait() signature compatibility with Guzzle's PromiseInterface by @shavonn in #59301
    • [13.x] schedule:list display expression in the correct timezone by @xiCO2k in #59286
    • Handle exceptions in eventStream to prevent fatal error by @WendellAdriel in #59292
    • [13.x] Ensure connectUsing works with UnitEnum / FileManager drive docblock by @jackbayliss in #59306
    • [13.x] Include columns and index in UniqueConstraintViolationException by @cosmastech in #59299
    • [13.x] Add TimedOut worker stop reason by @jackbayliss in #59310
    • Fix Table attribute incrementing not working for Pivot models by @sadique-cws in #59336
    • [13.x] Ensure ScopedBy Attribute works with inheritance by @jackbayliss in #59332
    • Modify sum callback to include item key by @mathieutu in #59322
    • [13.x] Bound error page query listener to prevent memory bloat in Octane by @JoshSalway in #59309
    • [13.x] Allow opting out of worker Job exception reporting by @jackbayliss in #59308
    • [13.x] Adds mobile safe-area-inset support to exception renderer by @dr-codswallop in #59341
    • [13.x] Allow passing multiple arrays to has factory method by @jackbayliss in #59343
    • [13.x] Allow Backoff Attribute to be variadic by @jackbayliss in #59354
    Original source Report a problem
  • Mar 18, 2026
    • Date parsed from source:
      Mar 18, 2026
    • First seen by Releasebot:
      Mar 25, 2026
    Laravel logo

    Laravel

    v13.1.1

    Laravel breaks queue dependency in a new update.

    Break queue dependency by @taylorotwell in #59275

    Original source Report a problem
  • Mar 18, 2026
    • Date parsed from source:
      Mar 18, 2026
    • First seen by Releasebot:
      Mar 18, 2026
    Laravel logo

    Laravel

    v13.1.0

    Laravel releases a coordinated set of 12.x and 13.x updates with bug fixes and subtle enhancements across queue handling, tests, HTML assertions, Carbon::now usage, Uri toString, and PHP 8.5 deprecation fixes, boosting reliability and compatibility.

    12.x

    • [12.x] Correct truncate exceptions at by @bretto36 in #59239
    • [12.x] Fix float pluralization in trans_choice() by @JulianGlueck in #59268
    • [12.x] Fix tests on PHP 8.5 by @SanderMuller in #59251

    13.x

    • [13.x] Remove useless \Mockery::close() by @lucasmichot in #59253
    • [13.x] Use Carbon::now() instead of now() helper by @lucasmichot in #59252
    • [13.x] Fix null broadcaster deprecation warning in PHP 8.5 by @mortenscheel in #59269
    • [13.x] Add toString to Uri by @dwightwatson in #59259

    Uncategorized

    • Fix: Batch::add() wipes queue assignment on first job in array chains by @ProjektGopher in #59233
    • Improvements for asserting HTML in text by @jasonmccreary in #59161
    Original source Report a problem
  • Mar 18, 2026
    • Date parsed from source:
      Mar 18, 2026
    • First seen by Releasebot:
      Mar 18, 2026
    Laravel logo

    Laravel

    v12.55.1

    Laravel ships 12.x fixes addressing truncate exceptions, float pluralization in trans_choice, and PHP 8.5 test updates.

    • [12.x] Correct truncate exceptions at by @bretto36 in #59239
    • [12.x] Fix float pluralization in trans_choice() by @JulianGlueck in #59268
    • [12.x] Fix tests on PHP 8.5 by @SanderMuller in #59251
    Original source Report a problem
  • Mar 17, 2026
    • Date parsed from source:
      Mar 17, 2026
    • First seen by Releasebot:
      Mar 17, 2026
    Laravel logo

    Laravel

    v13.0.0

    Laravel releases a broad 13.x update with numerous fixes and enhancements across the framework. Highlights include PHP 8.3 minimum, Symfony 7.4/8.0 compatibility, API and queue improvements, new or refined query/build features, and test/CI reliability fixes. The long changelog signals real shipped changes.

    Release notes

    • Revert "[12.x] Query builder PDO fetch modes" by @taylorotwell in #54709
    • [13.x] Prepare branch alias for Laravel 13 by @crynobone in #54701
    • [12.x] Query builder PDO fetch modes + columns fix by @bert-w in #54734
    • [13.x] Fix Tests/CI environments by @crynobone in #54760
    • [13.x] Requires PHP 8.3 as minimum version by @crynobone in #54763
    • [13.x] Add missing parameters to Response methods throw() and throwIf() by @cosmastech in #54798
    • [13.x] Fix scope removal in nested where conditions by @willrowe in #54816
    • [13.x] Remove function existence checks by @xurshudyan in #54876
    • [13.x] Removed unneeded default argument by @AndrewMast in #54900
    • [13.x] Fix unresolved merge conflict in Concurrency composer.json by @jnoordsij in #55233
    • [13.x] Fixes merge conflict by @crynobone in #55294
    • [13.x] Error exit code for clear command by @mbardelmeijer in #55355
    • [13.x] Add #[\Override] to the BatchFake class methods by @imanghafoori1 in #55358
    • [13.x] PDO Fetch modes by @bert-w in #55394
    • Allow Listeners to dynamically specify deleteWhenMissingModels by @L3o-pold in #55508
    • [13.x] Do not allow new model instances to be created during boot by @willrowe in #55685
    • Fix typo in Blueprint: datetime => dateTime by @TheJoeSchr in #55859
    • Feature: add support straight join in mysql by @jferdi24 in #55786
    • [13.x] Register subdomain routes before routes that are not linked to a domain by @gdebrauwer in #55921
    • [13.x] Supports Symfony 7.4 & 8.0 by @crynobone in #56029
    • [13.x] Change to hyphenate prefixes by @u01jmg3 in #56172
    • [13.x] Use exception object in JobAttempted event by @bert-w in #56148
    • [13.x] remove superfluous element by @browner12 in #56303
    • Add eventStream signature to ResponseFactory contract by @csfh in #56306
    • fix: align ResponseFactory::eventStream signature with interface by @KIKOmanasijev in #56484
    • [13.x] Cache::touch() & Store::touch() for TTL Extension by @yitzwillroth in #55954
    • [13.x] Make QueueBusy event consistent with other queue events by @AhmedAlaa4611 in #56673
    • [13.x] use clearer pagination view names by @browner12 in #56307
    • [13.x] Update countBy docblock in Enumerable interface to allow for enum callback by @jnoordsij in #56897
    • [13.x] Generate plural morph pivot table name by @willrowe in #56832
    • [13.x] Resolve Symfony Console add() method deprecation by @KIKOmanasijev in #56488
    • [13.x] Add command method to contract by @rodrigopedra in #56978
    • Refactor: replace strpos check with str_contains for clarity by @arshidkv12 in #57042
    • Remove unnecessary parameters by @arshidkv12 in #57047
    • [README.md] change laravel bootcamp to laravel learn by @MoZayedSaeid in #57176
    • [13.x] Resolve issues with tests by @jackbayliss in #57258
    • [13.x] Bind manager instances to custom driver closures by @daniser in #57173
    • [13.x] Compile full DELETE with JOIN including ORDER BY and LIMIT in MySQL grammar by @tegos in #57196
    • [13.x] Flush Str factories when tearing down test case by @cosmastech in #57296
    • [13.x] Update reset password notification subject by @ganyicz in #57882
    • [13.x] Update verification email subject capitalization by @ganyicz in #57884
    • [13.x] Simplify preg_replace_array callback by removing unnecessary foreach loop by @sumaiazaman in #57924
    • [13.x] Fix changes from Laravel 12 by @crynobone in #57919
    • [13.x] Default PendingRequest@pool() to use 2 for concurrency by @cosmastech in #57972
    • [13.x] Copy Symfony\Component\HttpFoundation\Request::get() functionality to avoid breaking changes. by @crynobone in #58081
    • [13.x] Defer registering schedule registered using ApplicationBuilder::withScheduling() by @crynobone in #58160
    • [13.x] Return data object from ModelInspector to make show:model more flexible by @cosmastech in #58230
    • [13.x] Add ability to default queue by class type by @jackbayliss in #58094
    • [13.x] Add reason to WorkerStopping event by @jackbayliss in #58341
    • [13.x] Add starting to Monitor Contract by @jackbayliss in #58399
    • [13.x] add dispatchAfterResponse to the Dispatcher Contract by @jackbayliss in #58428
    • [13.x] Add origin verification to request forgery protection by @benbjurstrom in #58400
    • [13.x] Improve Enumerable interface docblock types by @jnoordsij in #58181
    • Add missing chain method to interface by @Jeroen-G in #58429
    • [13.x] Use unescaped unicode in Js support class by default by @jnoordsij in #58471
    • [13.x] Add enum types to repository contract / allow enums for tagged caches by @jackbayliss in #58481
    • [13.x] Restore eager-loaded relations when deserializing collections by @dxnter in #58477
    • [13.x] Bump minimum PHPUnit by @crynobone in #58537
    • [13.x] Respect default value for class dependencies in BoundMethod::call by @comhon-project in #58553
    • [13.x] Bump minimum symfony/process by @crynobone in #58548
    • [13.x] Fix illuminate/json-schema dependencies by @crynobone in #58612
    • [13.x] Add hasSole and hasMany to the Enumerable interface by @JosephSilber in #58610
    • [13.x] Ensure bootstrap withMiddleware works for the DownCommand by @jackbayliss in #58571
    • [13.x] Remove override attribute on removed method by @crynobone in #58628
    • [13.x] Ensures compatibility with symfony/console 8 by @crynobone in #58629
    • [13.x] Add cc to Mailer contract by @jackbayliss in #58667
    • Fix ThrottleRequests over-throttling with multiple distinct rate limit keys (#54386) by @HeathNaylor in #58707
    • [13.x] Add markEmailAsUnverified to MustVerifyEmail interface by @amirhshokri in #58701
    • [13.x] Adds previous exceptions in exception view by @DarkGhostHunter in #58680
    • Attributes by @taylorotwell in #58578
    • [13.x] Accept CarbonInterval for PendingProcess timeouts by @riesjart in #58842
    • [13.x] Add Setup/TearDown trait attributes by @jackbayliss in #58685
    • [13.x] Allow aliases to be set in Signature Attribute (#58853) by @jackbayliss in #58874
    • [13.x] Adds PHPUnit 13 support by @nunomaduro in #58890
    • [13.x] Display route binding fields in route:list output by @jackbayliss in #58889
    • [13.x] feat: respect DeleteWhenMissingModels attribute on queued notifications by @calebdw in #58908
    • [13.x] Resolve DeleteNotificationWhenMissingModelTest by @jackbayliss in #58919
    • [13.x] add missing methods to Queue interface by @cosmastech in #58914
    • [13.x] chore: define closure type on Middleware by @calebdw in #58929
    • [13.x] Ensure SyncQueue JobAttempted gets the actual exception by @jackbayliss in #58954
    • [13.x] Throw exception when served disks share the same URI by @jackbayliss in #58960
    • [13.x] withoutOverlapping docblock by @jackbayliss in #58973
    • [13.x] Fix composer.json by @crynobone in #58975
    • [13.x] Update the dependencies version by @lucasmichot in #58995
    • [13.x] Normalize composer.json by @lucasmichot in #58996
    • [13.x] Add flushLocks() support to Cache stores by @amirhshokri in #58907
    • [13.x] Add cache flushLocks() events by @amirhshokri in #59006
    • [13.x] Refactor parameter names that are implemented from the interface by @mrvipchien in #59015
    • [13.x] Add missing @throws into docblock for various methods by @mrvipchien in #59016
    • Add insertOrIgnoreReturning method by @antonkomarev in #59025
    • Add corner case tests for insertOrIgnoreReturning by @antonkomarev in #59028
    • Extra validation on query builder upsert by @antonkomarev in #59029
    • [13.x] Add ErrorBag attribute support for FormRequest by @Tresor-Kasenda in #59033
    • [13.x] Add controller middleware attribute by @JurianArie in #59030
    • [13.x] Add Authorize controller middleware attribute by @JurianArie in #59048
    • [13.x] Fix symfony/translation deps by @crynobone in #59054
    • [13.x] Remove supports for laravel/serializable-closure v1 by @crynobone in #59053
    • Add saveOrIgnore Eloquent Model method for conflict-safe inserts by @antonkomarev in #59026
    • [13.x] Add support for named arguments in event dispatching and broadcasting by @ph7jack in #59075
    • [13.x] Supports pda/pheanstalk 8.0+ and remove 5.x by @crynobone in #59072
    • [13.x] Bump dependencies by @crynobone in #59069
    • [13.x] Add ability to set channel name via Log contextual attribute by @cosmastech in #59101
    • [13.x] Ensure insertOrIgnoreReturning only marks records as modified when rows are inserted by @jackbayliss in #59083
    • [13.x] Clean up ModelInfo by @cosmastech in #59080
    • [13.x] Clean up JsonApi by @cosmastech in #59079
    • [13.x] Indicate that raw queries should be literal strings by @axlon in #59081
    • [13.x] Update brick/math constraint and rounding mode constant by @balu-lt in #59107
    • [13.x] fix: MorphToMany morphClass type by @calebdw in #59110
    • [13.x] Rename Middleware attribute parameter from $value to $middleware by @SanderMuller in #59133
    • [13.x] fix: QueueRoutes docblocks for getRoute and $routes property by @SanderMuller in #59119
    • [13.x] fix: DoesntContain docblock typo by @SanderMuller in #59117
    • [13.x] BusFake assertNothingDispatched should check all dispatches by @jackbayliss in #59118
    • [13.x] fix: Align JsonApiResource flushState maxRelationshipDepth with trait default by @SanderMuller in #59116
    • [13.x] Make Cache touch() TTL required and remove redundant value fetching by @SanderMuller in #59121
    • [13.x] Fix previousPath() for external referrers by @faytekin in #59159
    • Add depth parameter to Arr::dot() by @faytekin in #59150
    • [13.x] Drop method_exists checks in MonitorCommand by @jackbayliss in #59151
    • [12.x] Add strict integer validation to Numeric validation rule by @RIESjart in #59156
    • [12.x] Add *OrFail transaction methods to BelongsToMany by @SanderMuller in #59153
    • [13.x] Add Exception to BatchCanceled event by @jackbayliss in #59163
    • [13.x] Add support for brick/math 0.16 by @balu-lt in #59165
    • Bump tar from 7.5.9 to 7.5.11 in /src/Illuminate/Foundation/resources/exceptions/renderer by @dependabot[bot] in #59164
    • [12.x] Add missing *OrFail transaction methods to BelongsToMany by @erhanurgun in #59168
    • [12.x] Add inOrderOf() method to query builder by @faytekin in #59162
    • [12.x] Add tcp_keepalive option to PhpRedis connector by @heikokrebs in #59158
    • [13.x] Add schedule:pause / resume command by @jackbayliss in #59169
    • [12.x] untap PendingRequest by @cosmastech in #59188
    • [12.x] Fix float to int deprecation in trans_choice() for certain locales by @hamedelasma in #59174
    • [12.x] Allow touch() to accept multiple columns by @devajmeireles in #59175
    • Revert "Add composite index to jobs table migration for improved queue polling" by @taylorotwell in #59202
    • [12.x] Add fluent string validation rule builder by @SanderMuller in #59201
    • [13.x] Add schedule resume and pause events by @jackbayliss in #59172
    • [13.x] insertOrIgnoreReturning with multiple unique keys by @tpetry in #59187
    • Update Command::withProgressBar phpdoc to account for arrow functions and non-void return types by @billypoke in #58766
    • [12.x] Lazily evaluate value for constraints in HasOneOrManyThrough by @Jacobs63 in #59231
    • Add string helper to get initials from a string by @denjaland in #59230
    • fix: Strip gzip-compressed output from concurrent process response by @NikhiltGhalme in #59224
    • [12.x] Fix failing tests introduced by #59201 by @SanderMuller in #59207
    • [12.x] Avoid redundant Util::getParameterClassName() call in container resolution by @SanderMuller in #59220
    • [12.x] Add missing conditional validation rule builders by @SanderMuller in #59209
    • [12.x] Skip placeholder replacements when message does not contain them by @SanderMuller in #59211
    • [12.x] Use array_push with spread operator in MessageBag::all() by @SanderMuller in #59217
    • [12.x] Cache Route instances in CompiledRouteCollection::getByName() by @SanderMuller in #59221
    • [13.x] Add additional Artisan attributes for usage, help and hidden by @ziadoz in #59204
    • [12.x] Accept CarbonInterval for retry sleep duration by @riesjart in #59232
    • [12.x] Fix failing phpstan by @GrahamCampbell in #59245
    • [12.x] Update comments for PlanetScale MySQL and PostgreSQL by @GrahamCampbell in #59244
    • [12.x] Use big integers for database cache expiration column by @tanerkay in #59243
    • [13.x] Allow brick/math ^0.17 by @jackbayliss in #59249
    • [12.x] Display file path and line number for closure routes in route:list by @devajmeireles in #59237
    • [12.x] Add wantsMarkdown() and acceptsMarkdown() request methods by @joetannenbaum in #59238
    • [13.x] Ensure RequiredUnless handles null by @jackbayliss in #59235
    Original source Report a problem
  • Mar 17, 2026
    • Date parsed from source:
      Mar 17, 2026
    • First seen by Releasebot:
      Mar 17, 2026
    Laravel logo

    Laravel

    v12.55.0

    Laravel releases a broad 12.x update with new features and fixes across validation, query building, relationships, caching, and routing. Highlights include OrFail methods for BelongsToMany, inOrderOf, strict int validation tweak, PhpRedis keepalive option, and improved route, test stability, and helper utilities.

    Release notes

    • Add depth parameter to Arr::dot() by @faytekin in #59150
    • [12.x] Add strict integer validation to Numeric validation rule by @riesjart in #59156
    • [12.x] Add *OrFail transaction methods to BelongsToMany by @SanderMuller in #59153
    • Bump tar from 7.5.9 to 7.5.11 in /src/Illuminate/Foundation/resources/exceptions/renderer by @dependabot[bot] in #59164
    • [12.x] Add missing *OrFail transaction methods to BelongsToMany by @erhanurgun in #59168
    • [12.x] Add inOrderOf() method to query builder by @faytekin in #59162
    • [12.x] Add tcp_keepalive option to PhpRedis connector by @heikokrebs in #59158
    • [12.x] untap PendingRequest by @cosmastech in #59188
    • [12.x] Fix float to int deprecation in trans_choice() for certain locales by @hamedelasma in #59174
    • [12.x] Allow touch() to accept multiple columns by @devajmeireles in #59175
    • Revert "Add composite index to jobs table migration for improved queue polling" by @taylorotwell in #59202
    • [12.x] Add fluent string validation rule builder by @SanderMuller in #59201
    • Update Command::withProgressBar phpdoc to account for arrow functions and non-void return types by @billypoke in #58766
    • [12.x] Lazily evaluate value for constraints in HasOneOrManyThrough by @Jacobs63 in #59231
    • Add string helper to get initials from a string by @denjaland in #59230
    • fix: Strip gzip-compressed output from concurrent process response by @NikhiltGhalme in #59224
    • [12.x] Fix failing tests introduced by #59201 by @SanderMuller in #59207
    • [12.x] Avoid redundant Util::getParameterClassName() call in container resolution by @SanderMuller in #59220
    • [12.x] Add missing conditional validation rule builders by @SanderMuller in #59209
    • [12.x] Skip placeholder replacements when message does not contain them by @SanderMuller in #59211
    • [12.x] Use array_push with spread operator in MessageBag::all() by @SanderMuller in #59217
    • [12.x] Cache Route instances in CompiledRouteCollection::getByName() by @SanderMuller in #59221
    • [12.x] Accept CarbonInterval for retry sleep duration by @riesjart in #59232
    • [12.x] Fix failing phpstan by @GrahamCampbell in #59245
    • [12.x] Update comments for PlanetScale MySQL and PostgreSQL by @GrahamCampbell in #59244
    • [12.x] Use big integers for database cache expiration column by @tanerkay in #59243
    • [12.x] Display file path and line number for closure routes in route:list by @devajmeireles in #59237
    • [12.x] Add wantsMarkdown() and acceptsMarkdown() request methods by @joetannenbaum in #59238
    Original source Report a problem

Related products