Laravel 8.78 发布:自定密码验证规则、请求数据 mergeIfMissing、toHtmlString

Laravel 团队发布了 8.78,能够向默认密码验证添加自定义规则、mergeIfMissing() 请求方法、断言测试中的批次计数,以及 v8.x 分支中的最新更改。

定义额外的默认密码验证规则

Ash Allen 贡献了定义自定义验证规则,这些规则将使用 rules() 方法作为默认密码规则的一部分运行:

Password::defaults(function () {
    return Password::min(8)
        ->symbols()
        ->mixedCase()
        ->uncompromised()
        ->rules(new ZxcvbnRule());
});

rules() 方法接受单个规则、规则数组或闭包验证规则的闭包。

如果缺失合并请求数据

David Peach 提供了一个mergeIfMissing() HTTP 请求方法,如果请求中缺少键,该方法会将新输入合并到请求的输入中。

例如,如果您未选中表单复选框,则不会将其发送到服务器。您可能必须编写如下内容:

if ($request->missing('boolean_setting')) {
    $request->merge(['boolean_setting' => 0]);
}

现在,您可以定义在参数缺少时与请求合并的值:

$request->mergeIfMissing(['boolean_setting' => 0])

断言批次数

@Chrysanthos 为 Bus facade 贡献了一个 assertBatchCount() 方法,该方法断言已经调度了多少批次:

Bus::assertBatchCount(3);

HTML 字符串方法

Lars Klopstra 为 Str 和 Stringable 贡献了一个toHtmlString() 方法:

// 之前
new HtmlString(Str::of($content)->markdown());
 // 现在
Str::of($content)
    ->markdown()
    ->html();

发行说明

您可以在 GitHub 上面查看新功能和更新的完整列表以及 8.77.0 和 8.78.0 之间的差异。 以下发行说明直接来自 changelog

v8.78.0

新增

  • 新增 schedule:clear-mutex 命令 (#40135)
  • 新增了自定密码验证规则的功能 (#40137)
  • 在 Illumbize Http 请求类中添加了一个 mergeIfMissing 方法 (#40116)
  • 新增 Illuminate/Support/MultipleInstanceManager (40913ac)
  • 新增 SimpleMessage::lines() (#40147)
  • 新增 Illuminate/Support/Testing/Fakes/BusFake::assertBatchCount() (#40217)
  • 使用广播驱动程序时仅启用 only-to-others 功能 (#40234)
  • 增加了在 JsonResource 响应上自定义 json 选项的功能 (#40208)
  • 新增 Illuminate/Support/Stringable::toHtmlString() (#40247)

更改

  • 改进对自定义列类型的支持 (#40119)
  • 删除控制台应用程序类中的无用检查 (#40145)
  • 当排序操作的第一个元素是字符串时(即使是可调用的),按键对集合进行排序 (#40212)
  • 如果有多个主机,请使用第一个主机  Illuminate/Database/Console/DbCommand::getConnection() (#40226)
  • 反射器类的改进 (#40241)

修复

本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:https://laravel-news.com/laravel-8-78-0

译文地址:https://learnku.com/laravel/t/64574

本文为协同翻译文章,如您发现瑕疵请点击「改进」按钮提交优化建议
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!