namespace Illuminate\Foundation\Http\Middleware;classConvertEmptyStringsToNullextendsTransformsRequest{/** * Transform the given value. * * @param string $key * @param mixed $value * @return mixed */protectedfunctiontransform($key,$value){returnis_string($value)&&$value===''?null:$value;}} ...
简介 上一章,我们看了 第三个 全局中间件 TrimStrings,知道了它的作用:对 $_GET 和 $_POST 的数据进行前后空白字符清理。 这一章,我们看 第四个 全局中间件 ConvertEmptyStringsToNull。 通过字面意思可以出是...
提交接口的数据会有’'空字符值存在,laravel的Illuminate\Foundation\Http\Request接收到参数后,会将空字符强制转换为NULL,导致签名校验通不过。 经过一番努力,找到幕后黑手。 Illuminate/Foundation/Http组件中有定义这个中间件。 vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull...
* @param string $key * @param mixed $value * @return mixed */ protected function transform($key, $value) { return is_string($value) && $value === '' ? null : $value; } /** * Register a callback that instructs the middleware to be skipped. * * @param \Closure $callback * ...
ConvertEmptyStringsToNull中间件建议不要开启,空字符串和 null 类型不同要区分开。我们之前就遇到一个坑:一个支持关键词搜索的列表,参数校验为'keyword' => 'string',,因为启用了该中间件,传空字符串时报错了,The keyword must be a string 按照我们通常理解关键词可以传(string),也可以不传(null);这里可以传...
1$request->whenHas('name', function (string $input) { 2 // The "name" value is present... 3}, function () { 4 // The "name" value is not present... 5});If you would like to determine if a value is present on the request and is not an empty string, you may use the ...
1$request->whenHas('name', function (string $input) { 2 // The "name" value is present... 3}, function () { 4 // The "name" value is not present... 5});If you would like to determine if a value is present on the request and is not an empty string, you may use the ...
\Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class, \Illuminate\Foundation\Http\Middleware\ValidatePostSize::class, \App\Http\Middleware\TrimStrings::class, \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class, \App\Http\Middleware\TrustProxies::class, ]; ...
$isSeparator && strlen($precedingText) > 0) { $tokens[] = array('text', $precedingText); } $regexp = $route->getRequirement($varName); if (null === $regexp) { $followingPattern = (string) substr($pattern, $pos); $nextSeparator = self::findNextSeparator($followingPattern, $use...
\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class, ]; 10、经过中间件处理后,再进行请求分发(包括查找匹配路由) /** * 10.1 通过中间件/路由器发送给定的请求 * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response ...