Laravel 团队本周发布了 9.37 以及 9.37 和
静默丢弃和缺失属性的处理程序
Aaron Francis贡献了为“静默丢弃”和“缺少属性”严格模式违规注册处理程序的能力:
1Model::handleMissingAttributeViolationUsing(
2 function ($model, $key) {
3 // ...
4 }
5);
6
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`)');
5
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)
固定的
v9.36.4
添加
- 将 rawValue 添加到 Database Query Builder(并将 Eloquent 作为包装器)(#44631)
- 添加了事务提交 ( #44608 )
- 将 dontIncludeSource 添加到 CliDumper 和 HtmlDumper ( #44623 )
- 添加
Illuminate/Filesystem/FilesystemAdapter::checksum()
(#44660) - 添加了用于静默丢弃和缺失属性违规的处理程序 ( #44664 )
还原
- 恢复“让MustVerifyEmail用于没有 id 作为主键的模型”(#44672)
改变了
- 克隆请求时创建新的 Json ParameterBag 实例 ( #44671 )
- 在运行 env:decrypt ( #44654 )时阻止启动提供程序
v9.36.3
还原
- 恢复视图事件的微优化 ( #44653 )
固定的
- 修复刀片不会忘记 view:clear 上的编译视图(#44643)
- 已修复
Illuminate/Database/Eloquent/Model::offsetExists()
(#44642) - 在测试之间忘记组件的缓存和工厂(#44648)
改变了
- Bump Testbench 依赖项 ( #44651 )
v9.36.2
固定的
- 确保在存在 * 时调用视图创建者和作曲家 ( #44636 )
v9.36.1
固定的
- 修复了使用 createBladeViewFromString ( #pull )的 livewire 组件