Laravel 11.8 中的新验证规则和手动使命令失败的能力
发布于 作者 Paul Redmond
本周,Laravel 团队发布了 v11.8,其中包含一个新的验证规则,在 handle()
方法之外使命令失败的能力,在 make:mail 时创建视图等等。
在 model:show 命令中显示事件
Wendell Adriel 为 model:show
命令贡献了一个 事件 部分,该部分显示了在 $dispatchesEvents
属性中定义的任何事件
contains
验证规则
新的 Andrew Brown 贡献了一个 contains
验证规则,该规则检查以确保预期值包含在给定的输入数组中
return [ 'allowed_ips' => ['present', 'nullable', 'array', 'contains:' . $request->ip()], 'allowed_ips.*' => ['required', 'ip'],];
在 PR 的描述中,此示例确保用户的 IP 位于 allowed_ips
数组中。您也可以传递多个参数,这将要求所有参数都存在于数据数组中。有关更多详细信息,请参见 Pull Request #51348。
手动使命令失败的能力
Len Woodward 贡献了在 handle()
方法之外手动使 Artisan 命令失败的能力。与队列的 $this->fail()
方便方法一样,命令现在可以手动使作业失败
public function handle(){ $this->trigger_failure();} protected function trigger_failure(){ $this->fail('Whoops!');}
有关实现细节和此方法如何比其他一些现有的方法在命令早期失败更有用的示例,请参见 Pull Request #51435。
使用 make:mail 创建 Blade 视图
Ryan Chandler 为 make:mail
命令贡献了一个 --view
标志,它将创建一个空的 Blade 文件,并将创建的 Mailable
默认配置为使用它。它的工作方式与现有的 --markdown
选项相同,并节省了创建和连接 Blade 邮件模板的手动步骤。
php artisan make:mail OrderShipped --view=mail.orders.shipped
发布说明
您可以在下面查看新功能和更新的完整列表,以及 GitHub 上 11.7.0 和 11.8.0 之间的差异。以下发布说明直接来自 变更日志
v11.8.0
- [11.x] @foremtehan 在 https://github.com/laravel/framework/pull/51338 中更新 PendingRequest.php
- @timkelty 在 https://github.com/laravel/framework/pull/51344 中将 unshift 方法添加到 Collection 中
- [11.x] @dvlpr91 在 https://github.com/laravel/framework/pull/51336 中使用更新的 laravel v11.0.7 同步缓存配置
- [11.x] @saMahmoudzadeh 在 https://github.com/laravel/framework/pull/51328 中使用
null-safe
操作符代替条件检查 - [11.x] @WendellAdriel 在 https://github.com/laravel/framework/pull/51324 中将事件添加到 model:show 命令中以供显示
- [11.x] fix: @calebdw 在 https://github.com/laravel/framework/pull/51346 中删除了 Redis::COMPRESSION_ZSTD_MIN 的使用
- [10.x] Backport: @Tietew 在 https://github.com/laravel/framework/pull/51352 中修复了 SesV2Transport 以使用正确的
EmailTags
参数 - [11.x] feat: @calebdw 在 https://github.com/laravel/framework/pull/51347 中在 CI 中使用 phpredis 6
- [11.x] @browner12 在 https://github.com/laravel/framework/pull/51348 中创建新的 “has” 验证规则
- [11.x] @Krisell 在 https://github.com/laravel/framework/pull/51222 中添加了对已签名 URL 验证中以前应用密钥的支持
- [11.x] @brecht-vermeersch 在 https://github.com/laravel/framework/pull/51341 中允许在 migrate:status --pending 中设置退出代码
- [11.x] @erik-perri 在 https://github.com/laravel/framework/pull/51372 中修复了数组规则类型提示
- [11.x] @crynobone 在 https://github.com/laravel/framework/pull/51365 中进行测试改进
- [10.x] @staudenmeir 在 https://github.com/laravel/framework/pull/51390 中修复了 PHPDoc 错别字
- [11.x] @philbates35 在 https://github.com/laravel/framework/pull/51392 中修复了 resolveRouteBindingQuery 的返回类型提示
- [11.x] @mrthito 在 https://github.com/laravel/framework/pull/51356 中允许在 bootstrap/app.php 中为 web 和 api 路由添加数组或字符串
- [ 11.x ] @ProjektGopher 在 https://github.com/laravel/framework/pull/51435 中添加了从 handle() 方法之外手动使命令失败的能力
- [10.x] @faissaloux 在 https://github.com/laravel/framework/pull/51428 中修复了非 ASCII 字符上的
apa
- [11.x] @chady 在 https://github.com/laravel/framework/pull/51431 中在 getColumnType 中比较小写列名
- [11.x] @crynobone 在 https://github.com/laravel/framework/pull/51425 中使用契约代替具体类型进行
resolveRouteBindingQuery()
- [11.x] @simonwelsh 在 https://github.com/laravel/framework/pull/51401 中在宏闭包中设置
$this
的值 - [11.x] @u01jmg3 在 https://github.com/laravel/framework/pull/51400 中添加了缺少的 roundrobin 传输驱动程序配置
- [11.x] @saMahmoudzadeh 在 https://github.com/laravel/framework/pull/51436 中删除了未使用的命名空间
- [11.x] @saMahmoudzadeh 在 https://github.com/laravel/framework/pull/51440 中修复了
Connector.php
中的文档块 - [10.x] @nunomaduro 在 https://github.com/laravel/framework/pull/51450 中修复了视图引擎解析器内存泄漏问题
- [11.x] @saMahmoudzadeh 在 https://github.com/laravel/framework/pull/51437 中为
SupportStrTest
添加了一些测试 - [11.x] @gazben 在 https://github.com/laravel/framework/pull/51393 中将 isCurrentlyOwnedBy 函数添加到锁中
- [11.x] @bert-w 在 https://github.com/laravel/framework/pull/51512 中对 Collection 平均值/avg 进行优化
- [11.x] @xurshudyan 在 https://github.com/laravel/framework/pull/51502 中引入了
MixManifestNotFoundException
用于处理缺少的 Mix 清单 - [11.x] @ryangjchandler 在 https://github.com/laravel/framework/pull/51411 中为 MailMakeCommand 添加了新的
--view
选项 - [11.x] @stefanvdlugt 在 https://github.com/laravel/framework/pull/51524 中在构建 URL 时用值替换所有支持的枚举
- [10.x] 不要在
ViewServiceProvider
上使用app()
Foundation 助手 by @rodrigopedra in https://github.com/laravel/framework/pull/51522 - 修复了使用
BackedEnum
的显式路由绑定 by @crynobone in https://github.com/laravel/framework/pull/51525 - [11.x] 为 UrlGenerator 合同 docblock 添加 query 方法 by @hjanos-bc in https://github.com/laravel/framework/pull/51515