Back to Blog

Laravel 9.18 Released

Julian Beaujardin
Julian Beaujardin Reference: Laravel News June 21st, 2022

With no release last week, there's a lot today in Laravel 9.18. Here are some highlights with a shoutout to Tim MacDonald (aka TimMac) for crushing it.

  • Improve file attachment for mail and notifications in #42563
  • Introduce invokable validation classes in #42689
  • Add @readonly Blade directive in #42717
  • Add nested array syntax for with relations in #42690
  • Add backoff in broadcast events in #42737
  • Add host(), httpHost(), schemeAndHttpHost() to Request in #42797
  • Add @pushIf Blade directive in #42762
  • Allow removing token during tests in #42841
  • Allow for nullable morphs in whereNotMorphedTo in #42878
  • Introduce fake() helper which resolves Faker singleton in #42844

You may review the full branch diff on GitHub for a complete list of changes.

Release Notes

You can see the complete list of new features and updates below and the diff between 9.17.0 and 9.18.0 on GitHub. The following release notes are directly from the changelog

Added

  • Improve file attachment for mail and notifications #42563
  • Introduce Invokable validation classes #42689
  • Predis v2.0 #42577
  • Added Illuminate/View/Compilers/Concerns/CompilesConditionals::compileReadonly() #42717
  • Apply where's from union query builder in cursor pagination #42651
  • Added ability to define "with" relations as a nested array #42690
  • Added ability to set backoff in broadcast events #42737
  • Added host(), httpHost(), schemeAndHttpHost() to Request #42797
  • Allow invokable rules to push messages to nested (or other) attributes #42801
  • Adds compilePushIf and compileEndpushIf functions to View compiler #42762
  • Added: Allow removing token during tests #42841
  • Added predefined_constants to reservedNames array in Illuminate/Console/GeneratorCommand #42832
  • Handle collection creation around a single enum #42839
  • Allow for nullable morphs in whereNotMorphedT #42878
  • Introduce a fake() helper to resolve faker singletons, per locale #42844
  • Allow handling cumulative query duration limit per DB connection #42744
  • Add invokable option to make rule command #42742

Fixed

  • Fix deprecation error in the route:list command #42704
  • Fixed Request offsetExists without routeResolver #42754
  • Fixed: Loose comparison causes the value not to be saved #42793
  • Fixed: Fix database session driver keeps resetting CSRF token #42782
  • Fixed: Arr::map - Fix map-by-reference w/ built-ins #42815
  • Fixed league/flysystem suggest #42872

Changed

  • Start session in TestResponse to allow marshalling of error bag from JSON #42710
  • Rename methods in Illuminate/Broadcasting/BroadcastManager 753e9fd
  • Avoid throwing on invalid mime-type in Illuminate/Filesystem/FilesystemAdapter::mimeType() #42761
  • Do not resolve already set headers in Illuminate/Filesystem/FilesystemAdapter #42760
  • Standardise invokable rule translation functionality #42873
  • Clear cast cache when setting attributes using arrow #42852