[12.x] Adds findOnce and findOrFailOnce methods for Eloquent
#58002
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 team,
It is quite a normal use case that we use
findorfindOrFailmultiple times within the same request - which results in multiple queries to the database.The usual workaround is to cache the result via static properties or a Context, but that adds another unnecessary layer in userland.
So this PR introduces the
findOnceandfindOrFailOncemethods. Both are nice-to-have and provide a small performance improvement per request.Personal taste: I did add these methods using
macro, but I don't really likemacro. Extending Builder is fine, but then I’d have to create a newBaseModelto use that extendedBuilderclass, etc.(If this gets accepted, I’ll open a PR to update the docs.)