[7.x] Fix null value injected from container in routes #31867
Merged
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.
Hi,
This PR fixes laravel/ideas#2114 (no idea why this bug have been moved to ideas, maybe I haven't made me understood 😕)
Context:
When injecting something witch can be null, the
\Illuminate\Routing\RouteDependencyResolverTrait::resolveMethodDependencies
method doesn't add it to parameters to inject, because it can't difference it from void return.I've added a default return value, to indicate that we want to strip the value, to allow null value.
You can reproduce the bug with:
And see the errors thrown:
Thanks.
Matt'
PS: If you read this, and can answer to this https://twitter.com/mathieutu/status/1236997027122249728?s=20, I would like to propose a PR for the router with a quite important breaking change, and so understand why the behavior of Laravel routing is like that, and why it is different from standard one.
Thanks.