xxxxxxxxxx
/**
* You can paginate your array
* Detail: https://www.itsolutionstuff.com/post/how-to-create-pagination-from-array-in-laravelexample.html
* @example arrayPaginate($array,10,$request->page,[
* 'path' => Paginator::resolveCurrentPath(),
*'pageName' => 'page',
*]);
*/
function arrayPaginate ($items, $perPage = 5, $page = null, $options = [])
{
$page = $page ?: (Paginator::resolveCurrentPage() ?: 1);
$items = $items instanceof Collection ? $items : Collection::make($items);
return new LengthAwarePaginator($items->forPage($page, $perPage), $items->count(), $perPage, $page, $options);
}
xxxxxxxxxx
public function myReferals(int $user_id): array
{
$refer = User::query()->where('ref_id', $user_id)->select(['id', 'name', 'created_at'])
->paginate(20);
$data = [];
foreach ($refer->items() as $key => $item) {
$number = $refer->firstItem() + $key;
$data[] = [
'number' => $number,
'id' => $item->id,
'name' => $item->name,
'data' => AdminService::parseCarbonDateFormat($item['created_at']),
];
}
$refer = $refer->toArray();
$refer['data'] = $data;
return AdminService::returnSuccess([
'status' => 'success',
'data' => $refer,
]);
}