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

本文为协同翻译文章,如您发现瑕疵请点击「改进」按钮提交优化建议
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 3
mengdodo

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

4年前 评论

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

4年前 评论

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

4年前 评论

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