Laravel 8.33 中新增了针对资源路由的 missing() 回调和 StringEncrypter 接口
发布于 作者 Paul Redmond
Laravel 团队发布了 8.33 版本,该版本包含针对资源路由定义 missing() 回调、StringEncrypter 接口以及 8.x 分支的最新更改
"Missing" 选项用于资源路由
@LuttaMustache 贡献了一个 missing() 方法,用于在导致 404 的资源路由上注册回调
Route::resource('users', UsersController::class) ->missing(function () { return response('missing', 404); });
StringEncrypter 接口
Marco Aurélio Deleu 贡献了一个 StringEncrypter 接口,用于在不进行序列化的情况下加密/解密字符串。虽然大多数人不需要担心这个问题,但这里列出了接口代码,以防您需要自定义实现
namespace Illuminate\Contracts\Encryption; interface StringEncrypter{ public function encryptString($value); public function decryptString($value);}
有关更多详细信息,请参阅拉取请求 #36578 和 #36566。
需要正确的密码才能重新哈希它
Matthew Boynes 贡献了一个修复,该修复解决了从其他设备注销时不检查密码的问题。它会重新哈希,无意中更改了用户的密码。通过此修复,会话守卫现在将检查密码,并在不匹配的情况下抛出异常。如果您好奇,请查看 拉取请求 #36608 以了解更多详细信息。
使用 AsArrayObject 和 AsCollection 的可空列
Tom Irons 贡献了使用 AsArrayObject 和 AsCollection 转换器进行可空数据库列的功能。以前,使用这些转换器之一的可空数据库列在访问属性时会导致未定义错误。
Taylor 在 Laracon 在线 2021 的演讲中提到了这些新的转换器,并演示了它们除了之前用于处理 JSON 数据的转换器之外还有多么有用。如果您想了解更多信息,我们还介绍了在 Laravel 8.28 中引入的 AsArrayObject 和 AsCollection 自定义转换器。
发行说明
您可以在下面看到新功能和更新的完整列表,以及 GitHub 上 8.32.0 和 8.33.0 之间的差异。以下发行说明直接来自 变更日志
v8.33.0
添加
修复
- 修复 Mail 和 Notification 组件中的返回值 (#36559)
- Stack Driver 修复:在 LogManager 中尊重定义的处理器 (#36591)
- 在从其他设备注销时,需要正确的密码才能重新哈希它 (#36608, 1e61612)