BaseResourceCollection.php 914 B

123456789101112131415161718192021222324252627282930
  1. <?php
  2. namespace App\Http\Resources\V3;
  3. use Illuminate\Http\Resources\Json\AnonymousResourceCollection;
  4. use Illuminate\Support\Arr;
  5. /**
  6. * v3 列表响应的集合类。
  7. *
  8. * 只做一件事:裁掉 Laravel 默认分页信息里的绝对 URL。
  9. * `links` 与 `meta.path` 都由 APP_URL 拼出,反向代理下容易拼错,前端也用不到。
  10. *
  11. * 其余一概交给框架:`meta` 里的 current_page / per_page / total / last_page /
  12. * from / to 都是 paginator 自己算的。
  13. */
  14. class BaseResourceCollection extends AnonymousResourceCollection
  15. {
  16. /**
  17. * @param array{links: array, meta: array} $default
  18. * @return array{meta: array}
  19. */
  20. public function paginationInformation($request, array $paginated, array $default): array
  21. {
  22. unset($default['links']);
  23. $default['meta'] = Arr::except($default['meta'], ['path', 'links']);
  24. return $default;
  25. }
  26. }