Laravel 9.41 发布
Laravel团队本周发布了9.41,其中包括软删除模型的验证规则、其他规则生成器便利方法、“when missing”请求方法等
"Only trashed" 数据库验证规则
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 provider
use 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']) }}
发行说明
你可以在 GitHub 上看到新功能和更新的完整列表以及 9.40.0 and 9.41.0 之间的差异。下面的发行说明直接来自 changelog:
v9.41.0
新增
- 添加了
Illuminate/Validation/Rules/DatabaseRule::onlyTrashed()
(#44989) - 在类规则中添加了一些规则 (#44998)
- 添加了
Illuminate/View/ComponentAttributeBag::missing()
(#45016) - 添加了
Illuminate/Http/Concerns/InteractsWithInput::whenMissing()
(#45019) - 向 SQL Server 连接器添加了隔离级别 (#45023)
- 修复 php artisan serve 与 PHP_CLI_SERVER_WORKERS > 1 运行时异常(#45041)
- 添加修剪已取消任务批次的功能 (#45034)
- 在 Vite Facade 上添加自定义文件名清单的选项 (#45007)
修复
已更改
- 改善 queue:work 命令输出 (#44971)
- 优化集合::containsStrict (#44970)
- 在 ' Illuminate/Testing/TestResponse::assertRedirectToRoute() '中指定名称 (98a0301)
- 从 aws 客户端的根配置选项中剥离密钥、秘密和令牌 (#44979)
- 允许定制实现 SendQueuedMailable 作业 (#45040)
- 在查询路由绑定前验证uuid (#44945)
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。