Laravel 9.41版本发布

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

Laravel团队在本周发布了9.41版本,包括软删除模型的验证规则,额外的规则构建器便利方法,"当丢失 "请求方法,以及更多。


"Only trashed "数据库验证规则

Michael Nabil为数据库Exists和Unique数据库规则贡献了一个onlyTrashed()条件。

这将只对软删除的行进行数据库验证:

Validator::make(
    [
        'name' => 'Michael Nabil',
    ],
    [
        'name' => [
            'required',
            Rule::exists('users')->where('id', $this->id)->onlyTrashed(),
            Rule::unique('users')->where('id', $this->id)->onlyTrashed(),  // Or
        ],
    ]
);


规则建立者的便利方法

Michael Nabil为图片、枚举、尺寸和唯一性贡献了一些规则生成器的便利方法:

// Before
$request->validate([
    'password' => Password::default(),
    'image' => File::default(),
    'status' => new Enum(StatusEnum::class),
    'name' => Rule::requiredIf(function () {
        return true;
    })
]);
 
// Now you can also do:
$request->validate([
    'password' => Password::default(),
    'image' => Rule::file()->default(),
    'status' => Rule::enum(StatusEnum::class),
    'name' => Rule::requiredIf(function () {
        return true;
    })
]);


当输入值丢失时请求回调

@phh为请求对象贡献了一个whenMissing()方法,当输入丢失时将被调用:

$request->whenMissing('name', function ($value) use (&$name) {
    $name = 'Taylor';
});

这个方法也可以接受一个默认的可调用,当钥匙没有丢失时。


Vite界面上的自定义清单文件名

Nagesh Tiwari 和 Tim MacDonald 贡献了自定义 Vite 清单文件名的功能。

该API工作原理如下:

// Service provider
use Illuminate\Support\Facades\Vite;
 
Vite::useManifestFilename('custom-manifest.json');


现在在Blade中,下面将使用自定义清单文件名:

{{-- Uses the custom manifest filename --}}
 
@vite(['resources/js/app.js'])
 
{{-- Inline example --}}
{{ Vite::useManifestFilename('custom-manifest.json')->withEntryPoints(['resources/js/app.js']) }}


发布说明

你可以在GitHub上看到以下完整的新功能和更新列表以及9.40.0和9.41.0之间的差异。

下面的发布说明直接来自更新日志:

https://github.com/laravel/framework/compare/v9.40.0...v9.41.0
https://github.com/laravel/framework/blob/2641bc172640ec625d84a0e66b0fd6caf112fb2a/CHANGELOG.md#v9410---2022-11-22


v9.41.0

已添加

添加 Illuminate/Validation/Rules/DatabaseRule::onlyTrashed() (#44989)
在类Rule中添加一些类规则 (#44998)
已添加 Illuminate/View/ComponentAttributeBag::missing() (#45016)
增加了Illuminate/Http/Concerns/InteractsWithInput::whenMissing() (#45019)
为SQL Server连接器添加隔离级别(#45023)
修复PHP_CLI_SERVER_WORKERS>1的php artisan服务(#45041)
增加修剪已取消作业批次的功能(#45034)。
在Vite Facade上增加自定义清单文件名的选项(#45007)。

修复

修正密码与NULL数据库密码比较时的废弃警告(#44986, 206e465)。
修复Outlook网页黑暗模式下的邮件布局(#45024)。

已更改

改进 queue:work 命令输出 (#44971)
优化Collection::containsStrict (#44970)
在Illuminate/Testing/TestResponse::assertRedirectToRoute()中使名称成为必填项(98a0301)
从aws客户端的根配置选项中剥离key、secret和token (#44979)
允许自定义实现SendQueuedMailable工作(#45040)。
在路由绑定查询前验证uuid(#44945)


转:

https://laravel-news.com/laravel-9-41-0

相关文章