[12.x] Add whereAttachedTo()
Eloquent builder method
#55245
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.
This PR adds a
whereAttachedTo()
Eloquent query builder method to simplify retrieving records that are 'attached' to a given model instance/collection with abelongsToMany
relationship.It functions very similarly to the
whereBelongsTo()
method introduced in #38927, and eliminates the need to pass a closure towhereHas
and/or extract the parent model ID(s) manually.Given some models:
Before
After
Like
whereBelongsTo()
,whereAttachedTo()
guesses the relationship name based on Laravel conventions, but it can also be passed in manually:Couple last things:
has
query, but that isn't always practical if they change based on other variables or if the parent model/collection is used in other places.whereAttachedToAny()
to be more specific and leave room for a laterwhereAttachedToAll()
.Thanks!