ApiController.php 992 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. <?php
  2. namespace App\Http\Controllers\Api;
  3. use Illuminate\Http\Request;
  4. use App\Http\Controllers\Controller;
  5. class ApiController extends Controller {
  6. public function json($res, $headers = [], $code = 200) {
  7. return response()->json($res, $code, $this->filterHeaders($headers), JSON_UNESCAPED_SLASHES);
  8. }
  9. public function linksForCollection($paginator) {
  10. $link = null;
  11. if ($paginator->onFirstPage()) {
  12. if ($paginator->hasMorePages()) {
  13. $link = '<'.$paginator->nextPageUrl().'>; rel="prev"';
  14. }
  15. } else {
  16. if ($paginator->previousPageUrl()) {
  17. $link = '<'.$paginator->previousPageUrl().'>; rel="next"';
  18. }
  19. if ($paginator->hasMorePages()) {
  20. $link .= ($link ? ', ' : '').'<'.$paginator->nextPageUrl().'>; rel="prev"';
  21. }
  22. }
  23. return $link;
  24. }
  25. private function filterHeaders($headers) {
  26. return array_filter($headers, function($v, $k) {
  27. return $v != null;
  28. }, ARRAY_FILTER_USE_BOTH);
  29. }
  30. }