diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php index 3031207..7b83b74 100644 --- a/app/Http/Kernel.php +++ b/app/Http/Kernel.php @@ -43,6 +43,7 @@ class Kernel extends HttpKernel \Illuminate\Routing\Middleware\ThrottleRequests::class . ':api', \Illuminate\Routing\Middleware\SubstituteBindings::class, // \App\Http\Middleware\ForceJsonResponse::class, + \App\Http\Middleware\UnmangleRequest::class, 'useSanctumGuard', \App\Http\Middleware\LogRequest::class, ], @@ -62,6 +63,7 @@ class Kernel extends HttpKernel 'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class, 'can' => \Illuminate\Auth\Middleware\Authorize::class, 'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class, + 'unmangle' => \App\Http\Middleware\UnmangleRequest::class, 'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class, 'signed' => \App\Http\Middleware\ValidateSignature::class, 'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class, diff --git a/app/Http/Middleware/UnmangleRequest.php b/app/Http/Middleware/UnmangleRequest.php new file mode 100644 index 0000000..5d5adf6 --- /dev/null +++ b/app/Http/Middleware/UnmangleRequest.php @@ -0,0 +1,47 @@ +all(); + + $string = $_SERVER['QUERY_STRING']; + $parts = explode('&', $string); + foreach ($parts as $part) { + $key = $part; + $splitPos = strpos($key, '='); + if ($splitPos !== false) { + $key = urldecode(substr($key, 0, $splitPos)); + } + + $replace_key = str_replace('.', '_', $key); + if (strpos($key, '.') !== false && array_key_exists($replace_key, $params) === true) { + $params[$key] = $params[$replace_key]; + unset($params[$replace_key]); + } + } + + $request->replace($params); + }//end if + + return $next($request); + } +}