Laravel 9.41 发布
发布时间 作者: Paul Redmond
Laravel 团队本周发布了 9.41 版本,其中包含针对软删除模型的验证规则、额外的规则构建器便捷方法、"when missing" 请求方法等等。
"仅已删除" 数据库验证规则
Michael Nabil 为数据库 Exists
和 Unique
数据库规则贡献了 onlyTrashed()
条件。这将仅针对软删除的行进行数据库验证。
Validator::make( [ 'name' => 'Michael Nabil', ], [ 'name' => [ 'required', Rule::exists('users')->where('id', $this->id)->onlyTrashed(), Rule::unique('users')->where('id', $this->id)->onlyTrashed(), // Or ], ]);
规则构建器便捷方法
Michael Nabil 为图像、枚举、尺寸和唯一性贡献了一些规则构建器便捷方法。
// Before$request->validate([ 'password' => Password::default(), 'image' => File::default(), 'status' => new Enum(StatusEnum::class), 'name' => Rule::requiredIf(function () { return true; })]); // Now you can also do:$request->validate([ 'password' => Password::default(), 'image' => Rule::file()->default(), 'status' => Rule::enum(StatusEnum::class), 'name' => Rule::requiredIf(function () { return true; })]);
当输入值缺失时请求回调
@phh 为请求对象贡献了 whenMissing()
方法,该方法将在输入缺失时被调用。
$request->whenMissing('name', function ($value) use (&$name) { $name = 'Taylor';});
此方法还可以接受一个默认的回调函数,用于在键缺失时使用。
在 Vite facade 上自定义清单文件名
Nagesh Tiwari 和 Tim MacDonald 贡献了自定义 Vite 清单文件名的功能。API 的工作原理如下
// Service provideruse Illuminate\Support\Facades\Vite; Vite::useManifestFilename('custom-manifest.json');
现在在 Blade 中,以下代码将使用自定义清单文件名。
{{-- Uses the custom manifest filename --}} @vite(['resources/js/app.js']) {{-- Inline example --}}{{ Vite::useManifestFilename('custom-manifest.json')->withEntryPoints(['resources/js/app.js']) }}
发布说明
您可以在下方查看新功能和更新的完整列表,以及 9.40.0 和 9.41.0 之间的差异。以下发布说明直接来自 变更日志
v9.41.0
新增
- 新增
Illuminate/Validation/Rules/DatabaseRule::onlyTrashed()
(#44989) - 在 class Rule 中添加一些类规则 (#44998)
- 新增
Illuminate/View/ComponentAttributeBag::missing()
(#45016) - 新增
Illuminate/Http/Concerns/InteractsWithInput::whenMissing()
(#45019) - 向 SQL Server 连接器添加隔离级别 (#45023)
- 修复 PHP_CLI_SERVER_WORKERS > 1 时 php artisan serve 的问题 (#45041)
- 添加修剪已取消作业批次的功能 (#45034)
- 添加在 Vite Facade 上自定义清单文件名的选项 (#45007)