Laravel 7.15 发布

Laravel

在 Laravel v7.15.0 中,Laravel 团队提供了 withToken() ,这是一个新的模型方法,用于在 Model 类之外定义模型关联,还附带一些 laravel7.x 中的问题修复。

Models 关联的扩展性

Gergő D. Nagy 为 Model 提供了 resolveRelationUsing 方法,该方法允许在 Model 类之外定义模型关联。

Order::resolveRelationUsing('customer', function ($model) {
    return $model->belongsTo(Customer::class, 'customer_id');
});

测试辅助方法 withToken()

Aryeh Raber 提供了 withToken()方法,一个辅助 HTTP 测试的方法。

// 之前 withHeader 中使用
$response = $this->withHeader('Authorization', 'Bearer test_token')->postJson('/some-endpoint');

// 使用 withToken() 辅助方法
$response = $this->withToken('test_token')->postJson('/some-endpoint');

更多的 Model

艾哈迈德·赛义德 贡献了一个 makeMany() 来创建许多相关的模型而不用去保存。 前方连接请求提供了以下示例:

public function orderTickets(string $email, int $ticket_quantity)
{
    $order = $this->orders()->create(['email' => $email]);

    $order->tickets()->insert(
        $order->tickets()->makeMany(
            collect()->pad($ticket_quantity, [])
        )->toArray()
    );

    return $order;
}

外部 UUID 列定义

保罗·亚当斯 贡献了一个 foreignUuid() uuid外建的列定义。 这里有一些此请求的测试例子:

$table->foreignUuid('company_id')->constrained();
$table->foreignUuid('laravel_idea_id')->constrained();
$table->foreignUuid('team_id')->references('id')->on('teams');
$table->foreignUuid('team_column_id')->constrained('teams');

设置事件处理队列

@lupinitylabs 提供了定义 viaQueue() 方法的能力,以定义要使用的队列:

该请求建议对Dispatcher类进行不间断的更改,允许用户通过在监听器中定义一个viaQueue()方法来设置队列名称,就像使用retryAfter和retryUntil方法已经完成的那样。

如果未定义getQueue方法,则代码会返回到使用$queue属性或空值(与以前一样)。

此更改的好处是为开发人员提供了一种灵活的方式来影响目标队列,而不必对它们进行硬编码。

发行说明

本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:https://laravel-news.com/laravel-7-15-0

译文地址:https://learnku.com/laravel/t/45858

本文为协同翻译文章,如您发现瑕疵请点击「改进」按钮提交优化建议
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 3
mengdodo

求求你别再更新了,我快学不完了

3年前 评论

修复了版本过低的bug 优化了公司人太少的bug

3年前 评论

makeMany 感觉应该是为了解决直接使用关联关系的 createMany 方法时 SQL 条数很多的情况。

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!