Laravel 8.23 发布
发布时间:作者: Paul Redmond
Laravel 团队昨天发布了 8.23,其中包含新的 sole()
查询构建器方法、对 throw_if
和 throw_unless
的增强,以及 8.x 分支的最新更改
在查询构建器中添加 Sole
Sole 已被添加到查询构建器中,这在 初始拉取请求 中描述如下
类似于 Django 的
get()
https://docs.django.ac.cn/en/3.1/topics/db/queries/#retrieving-a-single-object-with-get 和 Rails 的.sole
和find_sole_by
https://github.com/rails/rails/blob/master/activerecord/CHANGELOG.md.
DB::table('products')->where('ref', '#123')->sole()
将返回与条件匹配的唯一记录,如果未找到任何记录,则会抛出RecordsNotFoundException
,如果找到多个记录,则会抛出MultipleRecordsFoundException
。
此功能最初由 Mohamed Said 贡献,并由 Mior Muhammad Zaki 和 Rodrigo Pedra Brum 进行更新。有关与此功能相关的提交和拉取请求的完整详细信息,请参阅发行说明。
向 throw_if 和 throw_unless 添加默认参数
Sjors Ottjes 贡献了将消息作为第二个参数传递的能力
// Currently:throw_if( $sometingIsWrong, new RuntimeException('something wrong with user '.$user->id)); // With this PR:throw_if( $sometingIsWrong, 'something wrong with user '.$user->id); // If the message is an existing class, that will be used as the exceptionthrow_if($somethingIsWrong, LogicException::class);
发行说明
您可以在下面看到所有新功能和更新的完整列表,以及 8.22.0 和 8.23.0 之间的差异。以下发行说明直接来自 变更日志
v8.23.0
添加
- 添加
Illuminate\Database\Concerns\BuildsQueries::sole()
(#35869, 29c7dae, #35908, #35902, #35912) - 向 throw_if / throw_unless 添加默认参数 (#35890)
- 添加对 TeamSpeak3 URI 方案的验证支持 (#35933)