Laravel 9.13 发布
Laravel 团队发布的 9.13 版本,其中包含一个 value()
的集合方法, 新的测试响应助手,一个数组映射便利方法等:
发行说明
您可以在以下看到新功能和更新的完整列表,以及在 GitHub 上查看 9.12.0 and 9.13.0 之间的差异。以下发行说明直接来自于 changelog:
新增 value( ) 集合方法
Steve Bauman 为集合类贡献了一个 value()
方法,该方法从集合中的第一个匹配项中获取单个 key 的值:
$c = new $collection([
['id' => 1, 'name' => 'Hello'],
['id' => 2, 'name' => 'World']
]);
$this->assertEquals('Hello', $c->value('name'));
$this->assertEquals('World', $c->where('id', 2)->value('name'));
明确 JSON 去除路径测试响应助手
Danilo Polani 为 TestResponse
类贡献了一个 assertJsonMissingPath
方法。这里有一些来自 PR 的示例:
$this->getJson('/users/1')
->assertOk()
->assertJsonMissingPath('email'); // Never return the user email
$this->getJson('/articles')
->assertOk()
->assertJsonMissingPath('data.0.internalTags');
在带有通知伪造的测试中明确数量
@Chrysanthos 为通知伪造类贡献了一个 assertCount
方法。该方法的使用案例是明确测试中发送了给定数量的通知:
Notification::fake();
// 明确 4 个通知已被发出
Notification::assertCount(4);
测试响应 collect() 方法
Ilya Borisov 为 TestResponse 类贡献了一个 collect()
方法,以将 TestResponse 类获取响应的 JSON 解码作为一个集合:
// 获取整个测试响应作为一个集合
$response->collect();
/*
给定以下JSON响应的数据数组
[
'foo' => ['foobar_foo' => 'foo', 'foobar_bar' => 'bar'],
...
];
*/
//返回一个集合实例:
// ['foobar_foo' => 'foo', 'foobar_bar' => 'bar']
$response->collect('foo')
Array map() 方法
Daniel Eckermann 贡献了一个 Arr::map()
方法:
// Arr::map() 示例
$data = ['first' => 'taylor', 'last' => 'otwell'];
$mapped = Arr::map($data, function ($value, $key) {
return $key.'-'.strrev($value);
});
v9.13.0
新增
- 添加了
Illuminate/Collections/Traits/EnumeratesValues::value()
(#42257) - 添加了新的
TestResponse
助手:assertJsonMissingPath
(#42361) - 添加了
Illuminate/Support/Testing/Fakes/NotificationFake::assertCount()
(#42366) - 添加了新的
DetectLostConnections
(#42377, #42382) - 添加了
Illuminate/Testing/TestResponse::collect()
(#42384) - 为
schedule:list
添加了完整的可调用支持 (#42400) - 添加了
Illuminate/Collections/Arr::map()
(#42398)
修复
变更
- 在 HTTP 客户端中跳过原始帖子正文的参数解析 (#42364)
- 调整 between 和 digits_between 验证规则的一致性 (#42358)
- 更正了 BatchedTableCommand 中使用
failed_jobs
而不是job_batches
的问题 (#42389) - 更新
email.blade.php
(#42388) - 移除旧的 monolog 1.x 兼容代码 (#42392)
- SesTransport:使用正确的标签参数 (#42390)
- 实现对异常代码转发的稳健处理 (#42393)
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。