Laravel 9.26 Released
The Laravel team released 9.26 with a Vite asset helper, Closure support to dispatch conditionals, min and max digit validation rules, and more:
Vite asset URL helper
Tim MacDonald contributed a Vite asset URL helper to generate a URL in Blade. Given the following code in your app's JS entrypoint, Vite will process all images and fonts in these paths:
import.meta.glob([
'../images/**',
'../fonts/**',
]);
Now, using the Vite asset helper method, it will point to your project's build assets within a blade template:
<img src="{{ Vite::asset('resources/images/logo.jpeg') }}">
{{-- <img src="http://asset-url.com/build/assets/logo.1ddf943b.jpeg"> --}}
See Processing Static Assets With Vite in the Vite documentation for further details.
Add Closure support to dispatch conditionals
@Italo contributed the usage of a Closure
to dispatch jobs conditionally. The entire job instance is passed to the closure:
// Dispatches job
MyQueuableJob::dispatchIf(
fn ($job) => true,
$name
);
// Will not dispatch
MyQueuableJob::dispatchUnless(
fn ($job) => false,
$name
);
Min and max digits validation
Dan Harrin contributed min_digits
and max_digits
built-in validation rules. These rules require the integer under validation must have a minimum or maximum length of value:
Validator::validate([
'number' => 1000,
], [
'number' => [
// Passes as `1000` has 4 digits
'min_digits:3', 'max_digits:5',
// Fails as `1000` is greater than 5
'min:3', 'max:5',
],
])
Added support for additional "where" methods in route groups
Ollie Read contributed support for all remaining where*
methods available on routes to route groups:
Route::whereIn(['foo', 'bar'], ['one', 'two'])
->prefix('/{foo}/{bar}')
->group(function () {
// ...
});
Release Notes
You can see the complete list of new features and updates below and the diff between 9.25.0 and 9.26.0 on GitHub.