[4.x] Order by primary key when using lazy()
or chunk()
#9956
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.
When using
lazy()
orchunk()
within theEloquentQueryBuilder
, the result could change in unexpected ways because it is not sorted.The Laravel documentation recommends sorting by
id
when using thechunk
/lazy
function. In Laravel this is done through a seperatechunkById
/lazyById
function.I don't know if Statamic should offer 1.) a seperate
chunkById
/lazyById
(like the Laravel query builder) or 2.) thechunk
/lazy
function should already implement this behaviour by default.I would argue that you don't ever want a situation where the results are not ordered by the primary key, therefore I implemented the second approach within this pull request.
Similar to statamic/eloquent-driver#232