Laravel 9.8 发布

Laravel 团队发布了 9.8 版本,其中包含从 Eloquent 模型访问默认表单数据、每个异常类型的自定义日志级别、在其他路径中发现匿名组件等等:

「old」表单辅助函数可以接收模型

Andrew Arscott 对 old() 辅助函数进行了更新,允许模型作为第二个默认参数:

<input type="text" name="name" value="{{ old('name', $user->name) }}">

{{-- 🔥 --}}
<input type="text" name="name" value="{{ old('name', $user) }}">

在异常处理中允许自定义日志级别

Tom Witkowski 贡献了在异常处理程序中为抛出的异常自定义日志级别的能力:

use PDOException;
use Psr\Log\LogLevel;

/**
 * 异常类型列表及其相应的自定义日志级别。
 *
 * @var array<class-string<\Throwable>, \Psr\Log\LogLevel::*>
 */
protected $levels = [
    PDOException::class => LogLevel::CRITICAL
];

请前往 Pull Request #41925 了解实现细节。

在其他路径中发现匿名 Blade 组件

Ralph J. Smit 贡献了在其他路径中发现匿名 Blade 组件的能力:

public function boot()
{
    Blade::anonymousComponentNamespace('flights.bookings', 'flights');
}

以下是匿名组件用法的示例:

<x-flights::panel :flight="$flight" />

设置模型工厂方法:

Ralph J. Smit
贡献了模型工厂的 set() 方法,该方法用于设置单例模型的属性。

// 之前
EloquentModel::factory()
    ->create(['name' => 'foo']);

// 之后
EloquentModel::factory()
    ->set('name', 'foo')
    ->create();

// 之前
EloquentModel::factory()
    ->someMethod()
    ->create(['country' => 'NL']);

// 之后
EloquentModel::factory()
    ->someMethod()
    ->set('country', 'NL')
    ->create();

发行说明

你可以在后文查看新功能和更新的完整列表以及在 GitHub 上查看 9.7.0 和 9.8.0 之间的差异。

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

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

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

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

这版本发得真快 :joy:

2年前 评论

这也太快了,照这个速度下半年就要出 Laravel 10 了

2年前 评论

真丫的快

2年前 评论

很多人9.0都还没用上,就要到10了

2年前 评论
mengdodo

版本机器

2年前 评论

好家伙,我特么直接好家伙。。。

2年前 评论

照这个速度5月就可以出laravel10了

2年前 评论

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