Using an API-fetched Paginator in Livewire | GGAMI.NET
)
)
{
function
makeLengthAwarePaginator
(
array
|
null
$lengthAwarePaginatorArray
,
)
:
LengthAwarePaginator
|
null
{
if
(
$lengthAwarePaginatorArray
===
null
)
{
return
null
;
}
$perPage
=
$lengthAwarePaginatorArray
[
'per_page'
]
??
$lengthAwarePaginatorArray
[
'meta'
]
[
'per_page'
]
;
$page
=
Paginator
::
resolveCurrentPage
(
default
:
1
)
;
$path
=
Paginator
::
resolveCurrentPath
(
)
;
$items
=
$lengthAwarePaginatorArray
[
'data'
]
??
[
]
;
$items
=
$items
instanceof
Collection
?
$items
:
Collection
::
make
(
$items
)
;
$paginator
=
new
LengthAwarePaginator
(
$items
->
forPage
(
1
,
$perPage
)
,
$lengthAwarePaginatorArray
[
'total'
]
??
$lengthAwarePaginatorArray
[
'meta'
]
[
'total'
]
,
$perPage
,
$page
,
[
]
)
;
if
(
!
blank
(
$path
)
)
{
$paginator
=
$paginator
->
setPath
(
$path
)
;
}
return
$paginator
;
}
}
Laravel pagination usually looks like this:
It is returned in this format, and you can use the returned value by converting it back into a LengthAwarePaginator.