Laravel 9.47版本发布
Laravel团队本周发布了9.47版本,新增了Eloquent集合的可见性方法,"可销毁 "的单子路由,支持懒惰的集合与批处理假,以及更多。
新的Eloquent集合可见性方法
Jess Archer为Eloquent集合贡献了setVisible和setHidden方法。
setVisible方法在你想要明确你想要返回的数据时非常有用,而且它不会因为新的属性被添加到模型中而泄露:
$users->setVisible(['id', 'name'])->toArray();
/*
[
[
'id' => 1,
'name' => 'Test User',
]
]
*/
如果你只有几个字段想明确地隐藏,但一般都希望默认值是可见的,那么相反的setHidden就很有用。
支持BatchFake中的懒惰集合
Evan Burrell 贡献了对 LazyCollection 的支持,当使用 withFakeBatch() 与 Job 时。
由于这个特性,下面的内容现在可以工作了:
use Batchable;
Model::cursor()
->map(fn (Model $model) => new ModelJob($model))
->chunk(1000)
->each(function (LazyCollection $jobs) {
$this->batch->add($jobs);
});
// Associated test
[$job] = (new ModelJobBatch())->withFakeBatch();
$job->handle();
在mocking 文档中了解更多关于mocking batches的信息。
"可销毁 "的单子路线
Choraimy Kroonstuiver贡献了一个简单的方法来标记单子路由为 "可销毁"。
这种类型的路由可以被删除,但默认不会被创建:
// Before
Route::singleton(...)->creatable()->except('create', 'store');
// After
Route::singleton(...)->destroyable();
发布说明
你可以在GitHub上看到以下完整的新功能和更新列表以及9.46.0和9.47.0之间的差异。
下面的发行说明直接来自更新日志:
https://github.com/laravel/framework/compare/v9.46.0...v9.47.0
https://github.com/laravel/framework/blob/f02eca97368f4973079f279955cb3ed2551a985b/CHANGELOG.md#v9470---2023-01-10
v9.47.0
已添加
已添加 在BatchFake::add()中支持懒人集合 (#45507)
在数字规则列表中添加了十进制 (#45533)
已添加 Illuminate/Routing/PendingSingletonResourceRegistration::destroyable() (#45549)
为Eloquent Collection添加了setVisible和setHidden (#45558)
修复了
修复绑定方法的上下文绑定(#45500)。
修复方法explodeExplicitRule与regex规则(#45555)。
修复 Illuminate/Database/Query/Builder::whereIntegerInRaw() (#45584)
修复了刀片标签(#45490)
改变了
铸造属性时返回模型(#45539)
在Illuminate/Database/Console/Migrations/MigrateMakeCommand.php中始终显示迁移的完整路径(9f6ff48)
在MySQL上添加主键时删除索引名称(#45515)
转:
https://laravel-news.com/laravel-9-47-0
相关文章