Laravel 8.55 中新增条件验证规则支持
发布于 作者 Paul Redmond
Laravel 团队发布了 8.55 版本,其中包含条件验证规则支持、包含软删除记录的废弃路由以及 8.x 分支的最新更改。
此版本包含各种功能,这些功能是社区反馈的结果,Taylor Otwell 在 Twitter 上直接征求了 “可以提供良好的开发体验的小事”
给我一个 Laravel 小问题。
— Taylor Otwell 🥭 (@taylorotwell) 2021 年 8 月 11 日
一个小问题,可以修复以提供更好的开发体验。
如果我看到一个好的,我会尝试 *今天下午* 修复它。 ✂️
值得查看推文回复,以了解社区正在思考的所有想法和功能。虽然并非所有意见都适合框架,但也许某些功能非常适合作为 Laravel 包。
条件验证规则
Taylor Otwell 贡献了条件验证规则支持(感谢 Tim MacDonald),这将仅在条件评估为 true
时验证规则
request()->validate([ 'name' => 'required|string|min:6', 'password' => [ 'required', 'string', Rule::when(true, ['min:5', 'confirmed']) ],]);
在上面的代码中,min:5
和 confirmed
验证规则仅在 Rule::when()
的第一个参数为 true
时才适用。查看 拉取请求 #38361 以了解实现细节。
在路由中支持 "With Trashed"
Taylor Otwell 贡献了路由 withTrashed()
方法,该方法允许在解析隐式模型绑定时使用软删除模型
Route::post('/user/{user}', function (ImplicitBindingModel $user) { return $user;})->middleware(['web'])->withTrashed();
withTrashed()
方法可用于消除获取绑定模型数据以包含已删除记录的一些样板代码。查看 拉取请求 #38348 以了解详细信息。
验证的子集
Taylor Otwell 贡献了方便的方法,用于从验证器中获取有效数据的子集
$validator->safe()->only(['name', 'email']);$validator->safe()->except([...]); $formRequest->safe()->only([...]);$formRequest->safe()->except([...]);
isUuid()
的可字符串化支持
Andrew Minion 为 Str::isUuid()
贡献了可字符串化支持
// BeforeStr::isUuid(Str::of($filename)->after('-')->before('.')) // AfterStr::of($filename)->after('-')->before('.')->isUuid()
发布说明
您可以在下面查看完整的新功能和更新列表,以及 8.54.0 和 8.55.0 之间的差异。