[10.x] Do not apply global scopes when incrementing/decrementing an existing model #47629
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.
To close #47620 To reproduce, you can follow the set up that @levu42 provided in the original issue.
Previously, a new query was built from
Model@newQueryWithoutRelationships()
, which applies global scopes. If the client code already has the model, applying global scopes could potentially make the update query not see the row in the DB. To remedy this, we applyBuilder@newQueryWithoutScopes()
.Note: I'm unsure if
Model@newQueryWithoutRelationships()
is actually needed when calling increment/decrement when the model doesn't exist. That could possibly be changed tonewQueryWithoutScopes()
as well. 🤷 I can't really think of a use case where this would ever be called, so if someone can clue me in, would appreciate the knowledge.