Laravel 9.21 发布

Laravel 团队发布了 9.21,其中包含 Artisan 的全新外观、两个全新的 Artisan 命令等等。

让我们来看看最新的 Laravel 9 版本中的所有优点:

焕然一新的 Artisan

Nuno Maduroartisan CLI 做出了巨大的更新。 「几乎所有内置的 Artisan 命令都经过重新设计,以提供更好的体验。」

以下是全新安装的 Laravel 9.21 的一些示例:

如果想深入了解,请查看 Laravel 博客上的 Laravel: Refreshing Artisan。 此外,Pull Request #43065 具有旧 CLI 与新 CLI 的实现细节和数十个并排比较。

Artisan 的 about 命令

说到 Artisan 的改进,James Brooks 创建了一个全新的命令:aboutabout 命令显示有关 Laravel 环境的输出,例如调试模式、PHP 版本、缓存状态等:

Artisan 模型 show 命令

Jess Archer 贡献了一个新的 model:show Artisan 命令,该命令显示了模型的概览:

它提供来自数据库和 Eloquent 的数据,以便在一个地方提供完整、有用的模型图片。 通常,我们必须探索数据库和模型类来编译这些信息。

向 JsonResource 添加了 whenCounted 方法

Steve Bauman 为 JSON 资源贡献了一个 whenCounted 方法,以便在模型上设置关系时有条件地包含关系计数:

// new PostResource($post->loadCount('comments'));

class PostResource extends PostResource
{
    public function toArray($request)
    {
        return [
            'id' => $this->id,
            'comments_count' => $this->whenCounted('comments'),
        ];
    }
}

以枚举形式从请求中检索输入

@emargareten 帮助从请求对象中检索输入作为枚举:

// 之前
public function post(Request $request)
{
    $status = StatusEnum::tryFrom($request->input('status'));

    // 根据枚举状态 do stuff...
}

// 现在
public function post(Request $request)
{
    $status = $request->enum('status', StatusEnum::class);

    // 根据枚举状态 do stuff...
}

发布说明

您可以在 GitHub 查看新功能和更新的完整列表以及 9.20.0 和 9.21.0 之间的差异。以下发行说明来自 changelog:

v9.21.0

Added

撤销

  • 撤销「修复路由中的默认参数错误」(#43239)
  • 撤销 路由更改 PR(#43255)

修复

  • 修复 sqlsrv 的事务尝试计数器 (#43176)

变更

  • 使 assertDatabaseHas failureDescription 对多字节字符更友好(#43181)
  • ValidationException 仅在使用字符串时汇总 (#43177)
  • 改进集合中的模式功能 (#43240)
  • 清除 queue worker resetScope 回调中的 Facade resolvedInstances (#43215)
  • 改进queue:work命令 (#43252)
  • 当 Model::replicate 中的 UPDATED_AT 或 CREATED_AT 为空时删除空默认属性名称 (#43279)
  • 防止不明确的列 (#43278)
  • 对 sqlsrv 数据库队列使用 readpast 查询提示而不是 holdlock (#43259)
  • 供应商发布标志,仅限于现有文件(#43212)
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:https://laravel-news.com/laravel-9-21-0

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

本文为协同翻译文章,如您发现瑕疵请点击「改进」按钮提交优化建议
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 7

照这节奏都要快10了吧 :joy:

2周前 评论

直接出 10 吧,这速度

2周前 评论

虽然越来越好用,但更新真的太快了,完全跟不上 :joy:

2周前 评论

版本号会不会不够用 :joy:

2周前 评论
playmaker

就这还省了一篇 9.20 的呢

2周前 评论

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