[5.7] Don't run TransformsRequest twice on ?query= parameters #26366
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #19920
A similar fix was already made on the request JSON
ParameterBag
: #18840Illuminate\Http\Request::createFromBase()
modifies the base Symfony request:framework/src/Illuminate/Http/Request.php
Line 351 in 231119b
which makes
$request->query === $request->request
for GET/HEAD requests. HTTP middleware extendingTransformsRequest
(TrimStrings
,ConvertEmptyStringsToNull
, and user-land extensions) will recursively traverse ?query= parameters twice.The existing unit tests were naive (not setting HTTP method nor initializing each
ParameterBag
) so I corrected their setup to reproduce how Laravel's request lifecycle handles middleware. Test data and assertions for those two tests remain unchanged.