[Laravel 5.4] 新增两个中间件

原文地址: [https://laravel-news.com/laravel-5-4-middl...]

按计划我们将于下周迎来 Laravel 5.4 (和新任美国总统川普),它已经包含了许多伟大的新功能,不过团队又悄悄的贡献两个崭新的中间件。TrimStrings 和 ConvertEmptyStringsToNull。

TrimStrings 中间件

如名称所示,TrimStrings 中间件会自动修剪所有请求数据,这样你就不用担心你的表单字段中不经意的添加了额外的空格。

例如,假设你有一个需要电子邮件地址的注册表单。以前,如果有人输入了额外的空格,它会像这样:

dd(request('email'));
// 'demo@example.org '

现在,通过将 TrimStrings 中间件添加到 App/Kernel.php:

protected $middleware = [
    \Illuminate\Foundation\Http\Middleware\TrimStrings::class,

这将获得如下结果:

dd(request('email'));
// 'demo@example.org'

ConvertEmptyStringsToNull 中间件

与 TrimStrings 搭配的 ConvertEmptyStringsToNull 中间件,其工作方式基本相同。一个较好的适用场景是将表单的非必要字段映射为数据库可以为空的列。

例如,假设你有一个增值税字段,供用户输入报税编码。

<input type="text" name="vat" value="">

在以前,如果你把字段留空它会返回一个空字符串:

dd(request('vat'));
// ''

现在通过 ConvertEmptyStringsToNull 的处理,结果为 null :

dd(request('vat'));
// null
本作品采用《CC 协议》,转载必须注明作者和本文链接
Night gathers, and now my watch begins.
本帖由 Summer 于 4年前 加精
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 3

不知道能不能处理全角空格

4年前 评论

@Tony5456 不能,该中间件直接使用 PHP 的 trim 函数处理。

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!