Skip to main content

全局中间件之 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 ,高兴不。。。。嘿嘿。。。