From cc03df353661a4b7364a5a0c11fa858c7d33c5c3 Mon Sep 17 00:00:00 2001 From: ozgurkadarozgur Date: Fri, 22 Jan 2021 19:54:02 +0300 Subject: [PATCH] TransformsRequest.php cleanArray function fix. (#36002) When I send a request which has nested json body fields this function does recursive operation and it throws 'maximum function nested level of 256 reached.'. Size of my data is less than 256. If I use foreach loop it does not make recursive operation. My request: {"sample1":"sample","children":[{"title":"aa","children":[{"title":"aa","children":[{"title":"aa","children":[{"title":"aa","children":[{"title":"aa","children":[{"title":"aa","children":[{"title":"aa","children":[{"title":"aa","children":[{"title":"aa","children":[{"title":"aa","children":[{"title":"aa","children":[{"title":"aa","children":[{"title":"aa","children":[{"title":"aa","children":[{"title":"aa","children":[{"title":"aa","children":[{"title":"aa","children":[{"title":"aa","children":[{"title":"aa","children":[{"title":"aa","children":[{"title":"aa","children":[{"title":"aa","children":[{"title":"aa","children":[{"title":"aa","children":[{"title":"aa","children":[]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}],"sample2":[{"sample3":"sample","name":"sample"}]} --- .../Foundation/Http/Middleware/TransformsRequest.php | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php b/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php index a61a1bd72013..fca34f837b0b 100644 --- a/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php +++ b/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php @@ -58,9 +58,11 @@ protected function cleanParameterBag(ParameterBag $bag) */ protected function cleanArray(array $data, $keyPrefix = '') { - return collect($data)->map(function ($value, $key) use ($keyPrefix) { - return $this->cleanValue($keyPrefix.$key, $value); - })->all(); + foreach ($data as $key => $value) { + $data[$key] = $this->cleanValue($keyPrefix.$key, $value); + } + + return collect($data)->all(); } /**