Laravel 9.37 发布

Laravel团队在这周发布了 9.37 版本并且同时在 9.37 与 Laravel 9.36 之间发布了一些补丁。本周得发布添加了对使用 Vite 预加载资源的支持,新的严格违规处理程序,CLI输出详细的视图缓存,以及更多。

Verbose 视图缓存

Andrew Brown 贡献了在 view:cache 命令中传递 -v 的功能,以输出命令正在查找的目录,以及通过 -vv 来查看命令缓存中的每个文件。

php artisan view:cache -vv

这是一个例子,你会看到新安装的 Laravel 9.37 的情况:

Laravel

处理静默丢弃与属性丢失的方法

Aaron Francis 提供了为“静默丢弃”和“缺少属性”严格模式冲突注册处理程序的功能:

Model::handleMissingAttributeViolationUsing(
    function ($model, $key) {
        // ...
    }
);

Model::handleDiscardedAttributeViolationUsing(
    function ($model, $keys) {
        // ...
    }
);

传递救援报告参数的闭包

@foremtehan 贡献了在使用 rescue() 时将可调用对象作为 $report 参数传递,以便你可以根据返回的布尔值有条件地报告错误:

rescue(fn() => 'error', fn() => 'rescue', function(Throwable $e){
    return $e instanceof SomeException;
});

支持使用 Vite 预加载资源

Tim MacDonald 使用 Vite 预加载当前页面所需的资源。它现在是使用 Vite 的 Laravel 应用程序的默认行为。它如何工作的细节非常复杂,我建议阅读 Pull Request #44096. 此外,你还可以了解有关背后的一般概念的更多信息 预加载关键资源以提高加载速度.

查询构造器 RawValue方法

@eusonlito 贡献了 rawValue() 方法,支持使用SQL表达式来获取值。 以下是一些使用示例:

$first = TripModel::orderBy('date_at', 'ASC')
    ->rawValue('YEAR(`date_at`)');
$last = TripModel::orderBy('date_at', 'DESC')
    ->rawValue('YEAR(`date_at`)');

$fullname = UserModel::where('id', $id)
    ->rawValue('CONCAT(`first_name`, " ", `last_name`)');

发行说明

您可以在下方查看新功能和更新的完整列表,以及9.36.0 和 9.37.0之间的差异。以下发行说明来自 changelog

v9.37.0

添加

  • 添加视图缓存时的可选详细输出 (#44673)
  • 允许传递闭包以挽救 $report 参数 (#44710)
  • 支持使用 Vite 预加载资源 (#44096)
  • 添加 Illuminate/Mail/Mailables/Content::htmlString() (#44703)

修复

  • 修复 model:show 注册 getAttribute() 作为空访问器 (#44683)
  • 修复 PendingCommand 中输出断言的预期 (#44723)

v9.36.4

添加

  • 为数据库查询生成器添加了原始值(并作为包装器雄辩) (#44631)
  • 添加 TransactionCommitting (#44608)
  • 添加 dontIncludeSource 到 CliDumper 和 HtmlDumper (#44623)
  • 添加 Illuminate/Filesystem/FilesystemAdapter::checksum() (#44660)
  • 添加用于静默丢弃和缺少属性冲突的处理程序 (#44664)

恢复

更改

  • 克隆请求时创建新的 Json 参数包实例 (#44671)
  • 防止在运行 env:decrypt 时启动提供程序 (#44654)

v9.36.3

恢复

  • 还原 view 事件的微优化 (#44653)

修复

  • 修复了边栏选项卡,清除视图缓存 view:clear (#44643)
  • 修复 Illuminate/Database/Eloquent/Model::offsetExists() (#44642)
  • 忽略组件的缓存和测试之间的工厂 (#44648)

更改

  • Bump Testbench 依赖关系 (#44651)

v9.36.2

修复

  • 确保在*存在时调用视图创建者和合成器 (#44636)

v9.36.1

修复

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

原文地址:https://laravel-news.com/laravel-9-37-0

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

本文为协同翻译文章,如您发现瑕疵请点击「改进」按钮提交优化建议
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

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