[11.x] use value helper for $perPage as used for $total #54650
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.
When creating a
Paginator
from bothIlluminate\Database\Query\Builder
andIlluminate\Database\Eloquent\Builder
, the$total
property uses thevalue()
helper, as it can be a\Closure
.But the
$perPage
property replicates the same logic as thevalue()
helper, as below:framework/src/Illuminate/Collections/helpers.php
Lines 234 to 237 in 17786ca
This PR:
$perPage
calculation to use thevalue()
helperNote:
On
Illuminate\Database\Eloquent\Builder
, the previous code used the ternary shorthand operator (?:
) instead of the null coalescing operator (??
) to defer checking the model for the$perPage
value, in case it wasn't defined.It would allow a call like this:
To make the
Model@getPerPage()
method to be called, which would technically be a breaking change.I opted to use the null coalescing operator (
??
) as$total
uses it, and as, IMO, it is very unlikely someone to be callingModel::paginate(...)
with a zero$perPage
value.But I can revert to the ternary shorthand operator (
?:
) if we want to avoid any breaking change.