[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 于 7年前 加精
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 3

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

7年前 评论

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

7年前 评论

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