diff --git a/src/Traits/JsonResponse.php b/src/Traits/JsonResponse.php index cbcd5cf..952cd58 100644 --- a/src/Traits/JsonResponse.php +++ b/src/Traits/JsonResponse.php @@ -2,6 +2,8 @@ namespace Dcat\Admin\Traits; +use Illuminate\Contracts\Pagination\LengthAwarePaginator; +use Illuminate\Http\Resources\Json\AnonymousResourceCollection; use Illuminate\Http\Response; use Illuminate\Support\Facades\Auth; @@ -9,7 +11,22 @@ trait JsonResponse { public function json($data, $code = Response::HTTP_OK, $message = '') { + $meta = null; + if ($data instanceof AnonymousResourceCollection) { + $resource = $data->resource; + if ($resource instanceof LengthAwarePaginator) { + $meta = [ + 'current_page' => $resource->currentPage(), + 'last_page' => $resource->lastPage(), + 'per_page' => $resource->perPage(), + 'total' => $resource->total(), + ]; + } + } $result = ['data' => $data, 'code' => $code, 'message' => $message]; + if ($meta) { + $result['meta'] = $meta; + } return response()->json($result); }