Laravel 9.25 发布

Laravel 团队发布了 9.25,其中包含一个新的字符串方法,使用查询构建器大规模更新模型时间戳等等:

字符串方法 whenNotExactly

Anjorin Damilare 提供了一个 whenNotExactly 字符串方法,如果字符串与给定值不完全匹配,它将执行给定回调:

use Illuminate\Support\Str;

// 返回“钢铁侠”
Str::of('Tony')
    ->whenNotExactly('Tony Stark', function ($stringable) {
        return 'Iron Man';
    }));

// 如果为 `false`,则提供可选的默认值
// 返回 `Swing and a miss...!`
Str::of('Tony Stark')
    ->whenNotExactly('Tony Stark', function ($stringable) {
        return 'Iron Man';
    }, function ($stringable) {
        return 'Swing and a miss...!';
    }));

模型查询 touch() 方法来批量更新时间戳

Steve Bauman 为模型查询构建器贡献了一个 touch() 方法,它允许你在有或没有查询约束的情况下修改模型的时间戳。它的行为类似于 Model::touch()

// 批量更新 updated_at 列
User::query()->touch();

// 有查询约束
User::where('email', 'like', '%@company.com')->touch();

// touch 特定列
Post::query()->touch('published_at');

发行说明

你可以在在 GitHub 上查看新功能和更新的完整列表以及 9.24.0 and 9.25.0 的差异。以下发行说明直接来自 changelog:

v9.25.0

新增

  • whenNotExactly 添加到 Stringable (#43700)
  • Model::query()->touch() 添加了批量更新时间戳的功能 (#43665)

修复

  • 使用不支持的列时防止 db/model 命令出错 (#43635)
  • 修复 ensureDependenciesExist 运行时错误 (#43626)
  • 自动转换字段的空值导致 php 8.1 中的反对警告(#43706
  • db:table 命令正确处理不存在的表 (#43669)

变更

  • db 命令中处理关联模式 (#43636)
  • 允许在数组和模型上使用 chunkById (#43666)
  • 允许 whereMonth()whereDay() 的 int 值参数 (#43668)
  • 清理旧的 if-else 语句 (#43712)
  • 确保对 css 资源使用正确的「完整性」值 (#43714)
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

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

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

本文为协同翻译文章,如您发现瑕疵请点击「改进」按钮提交优化建议
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 3

请问下这个版本更新有归档吗?之前有个更新里面有个需要调整,一时记不起了,想翻翻更新归档

2年前 评论
小学毕业生 2年前
MArtian 2年前

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