全局中间件之 ConvertEmptyStringsToNull

未匹配的标注

简介

上一章,我们看了 第三个 全局中间件 TrimStrings,知道了它的作用:$_GET$_POST 的数据进行前后空白字符清理

这一章,我们看 第四个 全局中间件 ConvertEmptyStringsToNull

通过字面意思可以出是 关于空字符转成 null 一种处理

file

ConvertEmptyStringsToNull 的内容

<?php

namespace Illuminate\Foundation\Http\Middleware;

class ConvertEmptyStringsToNull extends TransformsRequest
{
    /**
     * 核心方法
     */
    protected function transform($key, $value)
    {
        return is_string($value) && $value === '' ? null : $value;
    }
}

喔!!!,,继承了 TransformsRequest 类,和上一章一样哦。就是 transform 方法不一样。

关于如何调用的 transform 方法,请移步上一章了解----->传送门

return is_string($value) && $value === '' ? null : $value;

这句代码意思是:如果 $_GET$_POST 中的值是字符串,且这个字符串是空,那么给它转成 null 返回,否则原样返回。

附录

TrimStrings 中间件与 ConvertEmptyStringsToNull 中间件联合会造成什么样的结果呢:

假设你 GET 或 POST 上传的数据中,有一个字段,全是空格、制表符、换行符、回车符、字符串结尾符(\0)、垂直制表符,无论多少还是混合,最后都会给你变成一个大大 null ,高兴不。。。。嘿嘿。。。

本篇如有错误、不当或者需补充的内容,请各位同僚多提宝贵意见。

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 0
发起讨论 查看所有版本


暂无话题~