GGAMI.NET

api로 받아온 Paginator 를 livewire 에서 사용하기

Updated on

if (!function_exists('makeLengthAwarePaginator')) { 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 은

array:3 [ "data" => array:7 [] "links" => array:4 [] "meta" => array:8 [] ]

이 형태로 반환되는데, 이 형태로 반환된 값을 기반으로 다시 LengthAwarePaginator 로 만들어서 사용하는 방법이다.

다른 글