Laravel 9.47版本发布

2023-06-01 00:00:00 laravel 版本 发布

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

相关文章