开源世界

Laravel 9.37 发布

Laravel 团队本周发布了 9.37 以及 9.37 和视图:缓存详细输出

静默丢弃和缺失属性的处理程序

Aaron Francis贡献了为“静默丢弃”和“缺少属性”严格模式违规注册处理程序的能力:


 
1Model::handleMissingAttributeViolationUsing(
2 function ($model, $key) {
3 // ...
4 }
5);

7Model::handleDiscardedAttributeViolationUsing(
8 function ($model, $keys) {
9 // ...
10 }
11);

为救援报告参数传递一个闭包

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


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

支持使用 Vite 预加载资源

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

查询构建器原始值方法

@eusonlito提供了rawValue()一种从 SQL 表达式中获取值的方法。以下是拉取请求中的一些示例:


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

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

发行说明

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

v9.37.0

添加

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

固定的

  • 固定模型:显示将 getAttribute() 注册为空访问器 ( #44683 )
  • 修复 PendingCommand 中对输出断言的期望 ( #44723 )

v9.36.4

添加

  • 将 rawValue 添加到 Database Query Builder(并将 Eloquent 作为包装器)(#44631
  • 添加了事务提交 ( #44608 )
  • 将 dontIncludeSource 添加到 CliDumper 和 HtmlDumper ( #44623 )
  • 添加Illuminate/Filesystem/FilesystemAdapter::checksum()#44660
  • 添加了用于静默丢弃和缺失属性违规的处理程序 ( #44664 )

还原

改变了

v9.36.3

还原

  • 恢复视图事件的微优化 ( #44653 )

固定的

  • 修复刀片不会忘记 view:clear 上的编译视图(#44643
  • 已修复Illuminate/Database/Eloquent/Model::offsetExists()#44642
  • 在测试之间忘记组件的缓存和工厂(#44648

改变了

  • Bump Testbench 依赖项 ( #44651 )

v9.36.2

固定的

  • 确保在存在 * 时调用视图创建者和作曲家 ( #44636 )

v9.36.1

固定的

希望看到您的想法,请您发表评论x