Laravel 9.46版本发布

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

Laravel团队本周发布了9.46版本,其中有两个JsonResource方法可以有条件地包含资源属性,更新了小数点验证规则,还有更多。

添加 "whenHas "到JSONResource中

Michael Nabil为JsonResource贡献了一个whenHas()方法,它使你能够在模型上发现属性时有条件地将其包含在Response中。

例如,这提供了一个干净的方法来有条件地定义一个属性:

public function toArray($request)
{
    return [
        'id' => $this->id,
        'name' => $this->name,
        'email' => $this->whenHas('email'),
    ];
}

你也可以定义一个Closure作为默认:

public function toArray($request)
{
    return [
        'id' => $this->id,
        'name' => $this->name,
        'email' => $this->whenHas('email', function () {
            return 'default value';
        }),
    ];
}

更多细节请参见Pull Request #45376。


JsonResource "unless "方法

Michael Nabil贡献了一个unless()方法,用于在条件解析为false时检索一个值:

public function toArray($request)
{
    $someCondition = false;
 
    return [
        'id' => $this->id,
        'name' => $this->name,
        // Email will be included, with `true` will not.
        'email' => $this->unless($someCondition, 'email'),
    ];
}


小数验证规则支持有符号的数字

@Pusparaj 贡献了对小数验证规则的更新,支持有符号的数字(即-5.5,+1.5,等等):

$v = new Validator(
    $trans,
    ['foo' => '-1.234'],
    ['foo' => 'Decimal:2,3']
);
 
$this->assertTrue($v->passes());


Artisan服务现在传递PATH变量

Maarten Buis 贡献了通过 php artisan serve 传递 PATH 环境变量,这对于底层代码寻找可执行文件来说可能是必要的。

你可以在 Pull Request #45402 中找到更多细节。


发布说明

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

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

https://github.com/laravel/framework/compare/v9.45.0...v9.46.0
https://github.com/laravel/framework/blob/c2383f4bb9a2c0e61e46679649fc6db394f12ffd/CHANGELOG.md#v9460---2023-01-03


v9.46.0

已添加

为serve命令添加了Passthrough PATH变量(#45402)。
为 JsonResource 添加了 whenHas (#45376)
在.gitignore中添加了./fleet目录 (#45432)
为JsonResource添加了unless (#45419)

修复了

修正了凭证检查(#45437)。
修正了小数点后的精度问题(#45456,#45492)。
嵌套数组的预知验证不会出现验证错误(#45405)
修正了关于哪个类检查自定义投掷的增量和减量方法的问题(#45444)。

已更改

更新小数验证规则,允许验证有符号的数字(24a48b2)
在Vite中只输出唯一的资产/预装标签(#45404)
优化查询生成器中的whereKey方法(#45453)
删除Model.php中的额外代码以优化性能(#45476)
异常处理程序prepareResponse增加了以前的异常(#45499)


转:

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

相关文章