This week, the Laravel team released v10.32, with new conditional push Blade directives, conditional “present” validation rules, and more. Laravel 10 saw 15 individual contributions, including updates, fixes, and improvements. Here is a bit more info about the new features introduced this week:
Add @pushElseIf and @pushElse Blade directives (v10.32.1)
Jason McCreary contributed the @pushElseIf
and @pushElse
Blade directives to accompany @pushIf
and complete a full set of conditional push directives:
@pushIf($type == 'tailwind', 'css')
<link href="public/css/tailwind.css" media="all" rel="stylesheet">
@elsePushIf($type == 'boostrap', 'css')
<link href="public/css/bootstrap.css" media="all" rel="stylesheet">
@elsePush('css')
<link href="public/css/app.css" media="all" rel="stylesheet">
@pushEndIf
See Pull Request #48990 to learn more about the implementation.
Additional “present” validation rules
@diamondobama contributed additional “present” validation rules to validate data based on the presence of other fields. Previously, the present
validation rule would validate that a given field was present in the request.
Now we have the following “present” rules:
present_if
present_unless
present_with
present_with_all
Here’s an example using the present_if
validation rule:
use Illuminate\Support\Facades\Validator;
Validator::validate(
['foo' => 1],
['foo' => 'required', 'bar' => 'present_if:foo,1']
); // ValidationException
Validator::validate(
['foo' => 1, 'bar' => null],
['foo' => 'required', 'bar' => 'present_if:foo,1']
); // [ "foo" => 1, "bar" => null ]
Check out the tests in Pull Request #48908 for examples of each rule.
Release notes
You can see the complete list of new features and updates below and the diff between 10.31.0 and 10.32.1 on GitHub. The following release notes are directly from the changelog: