Laravel 9.25版本发布

2023-06-01 00:00:00 laravel 版本 发布

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


字符串方法:whenNotExactly

Anjorin Damilare提供了一个whenNotExactly字符串方法,

如果字符串与给定值不完全匹配,该方法将执行给定的回调:

use Illuminate\Support\Str;
 
// Returns `Iron Man`
Str::of('Tony')
    ->whenNotExactly('Tony Stark', function ($stringable) {
        return 'Iron Man';
    }));
 
// Provide an optional default value if `false`
// Returns `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():

// Mass updating the updated_at column
User::query()->touch();
 
// With query constraints
User::where('email', 'like', '%@company.com')->touch();
 
// Touching a specific column
Post::query()->touch('published_at');


发行说明

您可以在下面查看新功能和更新的完整列表以及GitHub 上9.24.0 和 9.25.0之间的差异。

以下发行说明直接来自变更日志:

https://github.com/laravel/framework/compare/v9.24.0...v9.25.0
https://github.com/laravel/framework/blob/f01d8b95bed1882f5c08902ae6601f2f92be83c5/CHANGELOG.md#v9250---2022-08-16


v9.25.0

添加

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


修复

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


改变

在 db 命令中处理关联模式 ( #43636 )
允许在数组和模型上使用 chunkById ( #43666 )
允许 int 值参数到 whereMonth() 和 whereDay() ( #43668 )
清理旧的 if-else 语句 ( #43712 )
确保对 css 资产使用正确的“完整性”值 ( #43714 )

相关文章