Laravel 9.47 发布
Laravel 团队本周发布了 9.47,其中包含新的 Eloquent 集合可见性方法、「可销毁的」单例路由、支持带有 batch fake 的懒加载集合等等:
新的 Eloquent 集合可见性方法#
Jess Archer 为 Eloquent 集合贡献了 setVisible
和 setHidden
方法。 当你想明确要返回的数据时,setVisible
方法很有用,并且它不会在向模型添加新属性时泄漏:
$users->setVisible(['id', 'name'])->toArray();
/*
[
[
'id' => 1,
'name' => 'Test User',
]
]
*/
如果你只有几个要显式隐藏的字段,但通常希望默认值可见,则相反的 setHidden 很有用。
在 BatchFake 中支持懒加载集合#
Evan Burrell 在将 withFakeBatch()
与作业一起使用时贡献了对 LazyCollection
的支持。 由于此功能,现在可以使用以下功能:
use Batchable;
Model::cursor()
->map(fn (Model $model) => new ModelJob($model))
->chunk(1000)
->each(function (LazyCollection $jobs) {
$this->batch->add($jobs);
});
// 相关测试
[$job] = (new ModelJobBatch())->withFakeBatch();
$job->handle();
了解更多关于模拟批处理的信息,请点击测试模拟器.
「可销毁的」单例路由#
Choraimy Kroonstuiver 贡献了一个简单的方法,将单例路由标记为「可销毁」。这种类型的路由可以被删除,但默认不会被创建。
// 以前
Route::singleton(...)->creatable()->except('create', 'store');
// 之后
Route::singleton(...)->destroyable();
发布说明#
你可以在 GitHub 上看到以下完整的新功能和更新列表以及 9.46.0 和 9.47.0 之间的差异。下面的发行说明直接来自 changelog:
v9.47.0#
新增#
- 在
BatchFake::add()
中添加了支持懒加载集合 (#45507) - 添加小数到数字规则列表 (#45533)
- 添加
Illuminate/Routing/PendingSingletonResourceRegistration::destroyable()
可销毁路由 (#45549) - 将 setVisible 和 setHidden 添加到 Eloquent 集合 (#45558)
修复#
- 修复绑定方法上下文绑定 (#45500)
- 修复方法
explodeExplicitRule
与正则表达式规则 (#45555) - 修复
Illuminate/Database/Query/Builder::whereIntegerInRaw()
方法 (#45584) - 修复模板标签 (#45490)
修改#
- 转换属性时返回模型
(#45539) - 始终显示完整的迁移路径
Illuminate/Database/Console/Migrations/MigrateMakeCommand.php
(9f6ff48) - 在 MySQL 上添加主键时删除索引名称 (#45515)
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。
推荐文章: