[4.x] Bug: Values class not forwarding calls to proxied collection methods #9412
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.
This PR makes a few changes to how the magic
__call
method works, withinFields\Values.php
. Currently, it performs a single check and throws an exception if this condition is not met:We get the collection back as the proxied instance, but the
has
method checks for the existence of a particular key in the data—not an available method on the class itself.With this PR, we're adding in an initial check to see if the passed
$method
exists on the Collection, via thegetProxiedInstance()
. If it does exist, call it with the additional$args
and return the value. Otherwise, continue to the same query builder check we had originally. If neither of these apply, throw an exception w/ a slightly more descriptive message.Also added to the
ValuesTest
, with an example that illustrates our particular use-case for some custom front-end output.Disclaimer: the way this method was defined lead me to believe it's missing the functionality outlined above, but by all means, check my work/logic here, and don't hesitate to trash this PR if it's not inline with the intended use of that class or method.