[5.5] Automatic self referencing relationships on model getAttribute #22401
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 pull request aims to improve Eloquent performance when accessing relationships as an attribute on a model by setting the originating relationship on a newly loaded relationship automatically.
Let's take the following two models as our example.
In the following situation, we will be executing unnecessary queries.
The above will execute a new database call to fetch the user when accessing its relationship as an attribute on the Post model instance.
This pull request will automatically set the relationship
user
on all posts.In other words
$user
and$post->user
in the example above, are exactly the same object instance.This is particularly useful when passing post models to functions or methods elsewhere in your code where you need to access the original user. Before this pull request, a new query would be executed for every
$post->user
call.An example where the same effect can be produced without this PR.