Laravel 5.8.22 –变形模型的热负荷关系

Laravel团队昨天发布了v5.8.22,它提供了一种新的 morphWith 方法来渴望变形模型的载荷关系。该版本包含许多新功能,因此请务必查看完整的发行说明以及有关以下某些新功能的一些说明。

首先,@componentFirst 添加了一个新 指令,该指令类似于 @includeFirst 工作原理:

<div>
    @componentFirst(['missing/file', 'found/file'])
        @slot('title', 'Test Component')
    @endcomponent
</div>

接下来,withMorph 当您想快速加载变形模型的关系时,添加了一个新 方法:

$comments = Comment::query()
    ->with(['commentable' => function (MorphTo $morphTo) {
        $morphTo->morphWith([Post::class => ['user']]);
    }])
    ->get();

我建议您查看“拉取请求”#28647,以更好地了解其工作原理。这种方法的一个好处是可以通过使用支持嵌套关系 with (如上例所示)。

接下来,containsAll 在Str 实用程序类中添加了一个新方法,该 方法 确定给定的字符串是否包含所有数组值:

// 真的
Str::containsAll('taylor otwell', ['taylor', 'otwell']);

// 错误的
Str::containsAll('taylor otwell', ['taylor', 'xxx']);

接下来,引入了维护模式命令的错误处理,该命令现在输出失败的消息以及退出代码, 1 指示up命令或down命令是否失败。

接下来,该 TestResponse::assertJsonValidationErrors方法现在具有消息值断言,使您可以检查错误键和消息:

$response->assertJsonValidationErrors([
    'key' => 'validation message'
]);

JSON验证错误消息仍然允许索引数组,该数组将声明匹配的键,以及索引数组值以及键和消息值的关联数组的混合。

此断言也接受一系列消息:

$response->assertJsonValidationErrors([
    'key' => ['validation message', 'another validation message'],
]);

我还想大声疾呼Tetiana Blindaruk处理Laravel的变更日志和发布。合并所有合并的拉取请求和提交并将它们格式化为干净的变更日志并不是一件容易的事。谢谢你,泰蒂安娜!

您可以在下面看到所有修补程序列表,以及GitHub上5.8.21和5.8.22之间的全部差异。可以在GitHub 5.8 changelog中找到Laravel 5.8的完整发行说明:

v5.8.22

添加

  • 添加了 @componentFirst 指令(#28783)

  • 添加了对类型化的紧急加载的支持(#28647,d72e3cd)

  • 已添加Related 并 添加 Recommended 到Pluralizer(#28749)

  • 添加的  方法(#28806)Str::containsAll()

  • 新增:维护模式命令的错误处理(#28765,9e20849)

  • 向(#28787)添加了消息值断言 TestResponse::assertJsonValidationErrors()

  • 已添加:自动将viewAny方法绑定到索引控制器操作(#28820)

固定的

  • 使用where子句修复数据库规则(#28748)

  • 修正:MorphTo关系在触摸时会忽略父$timestamp(#28670)

  • 修复:dropAllTables 存在外键约束时(#28750,#28770)期间的Sql Server问题 

  •  使用 时 固定 (#28804)Model::getConnectionName()Model::cursor()

已变更

  • 制造 force 使用时的可选功能 ConfirmableTrait。(#28742)

  •  (#28762)中未返回任何关系值时,建议解决方案 Model::getRelationshipFromMethod()