[6.x] Improvements on subqueries #30307
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.
Determine if the value is queryable
This method allows the query builder to check if a value is queryable and can be used to perform subqueries.
Those checks were performed in 4 different places in the query builder so the repetition is now extracted to a single method.
Add more context about invalid subqueries
The valid values for performing subqueries are query builder instances, closures and strings.
If the value is not one of the above, an InvalidArgumentException was thrown without any message. I've added a sensible message, and also some
@throws
docblock tags to the affected methods.I've also added some tests that confirm these methods can indeed throw exceptions when misused.