[9.x] Ensure middleware group exists #42161
Closed
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.
Closes #42159
After PR #42004 the behavior of method
Illuminate\Routing\Router@middlewareGroup
was slightly changed, as before it would define a middleware group even if the group was empty, e.g. the group had an empty array of middleware.After the aforementioned PR, a middleware group with an empty array does not actually add a corresponding middleware group to the stack, thus when running a route with that empty middleware group, the dispatcher would try to instantiate a middleware named as the group which will fail, as reported in #42159 .
This PR:
ensureMiddlewareGroup
, which will check if a middleware group is defined, and if not will add it.middlewareGroup
,prependMiddlewareToGroup
andpushMiddlewareToGroup
to use the method aboveTo reproduce the error described in issue #42159 one could use the following steps:
public
)After applying the changes proposed in this PR, the route will work.