Laravel 6.8.0 发布
发布时间 作者: Paul Redmond
Laravel 团队在本周发布了次要版本 v6.8.0,增加了有用的测试响应更新,以及 Laravel 6.x 的最新功能、更改和修复。
响应上的 ArrayAccess
Taylor Otwell 在 JsonResponse
和 TestResponse
类上实现了 ArrayAccess
。如果您想在测试或 JsonResponse 实例中获取 JSON 数据,那么使用数组访问将非常方便。Taylor 在 拉取请求(#30817) 中总结了此功能的用处。
在构建/测试和 JSON API 时,我有时喜欢与响应中返回的原始 JSON 负载进行交互。通常您需要通过
$response->original['foo'];
来访问它,但是,通过此更改,我在JsonResponse
和TestResponse
上都实现了ArrayAccess
,以便能够直接代理到响应 JSON 中,而无需通过original
属性。
以下是从 PR 中摘取的简短示例
// In a test... Route::get('/', function () { return ['servers' => ['foo', 'bar']];}); $response = $this->get('/'); // Before$this->assertCount(2, $response->original['servers']); // After$this->assertCount(2, $response['servers']);
软件包可以使用自定义 Markdown 邮件主题
软件包现在可以使用自定义 Markdown 邮件主题。现在,一个软件包可以使用以下示例
mailcoach::mails.layout.mailcoach
assertViewHas() 中的嵌套支持
TestResponse::assertViewHas()
断言支持嵌套数组检查
$this->get('/page') ->assertViewHas('page', [ 'component' => 'PageComponent', 'url' => '/page', 'version' => null, 'props' => [ 'user_name' => 'John Doe' ] ]);
设置单个原始属性
您现在可以使用 setRawAttribute()
方法为单个模型属性设置原始值
// Set attribute to value.$model->setRawAttribute('key', $value); // Set attribute to value and also sync to original attribute.$model->setRawAttribute('key', $value, true);
artisan make:controller 的 force 标志
类似于模型,您可以使用 make:controller
命令强制创建控制器。如果您忘记使用 --resource
标志并想要重新创建控制器,则强制非常有用。
php artisan make:controller --force --resource ExampleController
使用 artisan make:model 创建播种器
使用 --seed
标志,make:model
artisan 命令将创建一个与模型名称匹配的播种器。
# creates PostSeeder classartisan make:model --seed Post
您可以在下面查看新功能和更新的完整列表,以及 GitHub 上 6.7.0 和 6.8.0 之间的完整差异。Laravel 6.0 的完整发行说明可在 GitHub v6 变更日志 中找到。
v6.8.0
添加
- 允许软件包使用自定义 Markdown 邮件主题 (#30814, 2206d52)
- 在
Inspiring
中添加了更多引用 (4a7d566, 9693ced) - 添加了对
TestResponse::assertViewHas()
中嵌套数组的支持 (#30837) - 添加了
Model::setRawAttribute()
(#30853) - 添加了
make:controller
资源的--force
选项 (#30856) - 允许将数组传递给
Resource::collection()
(#30800) - 在
JsonResponse
和TestResponse
上实现了 ArrayAccess (#30817) - 添加了
make::model
资源的--seed
选项 (#30828, 2cd9417)
修复
- 修复了使用
change()
时创建两个索引而不是一个的问题 (#30843) - 防止
Mailable
中出现重复的附件 (3c8ccc2) - 修复了
Lumen
中 PHP 7.4 的ServiceProvider
(#30819) - 修复了数据库验证规则中的非 Eloquent 模型验证 (#30840)