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 로 만들어서 사용하는 방법이다.