/** * Respond with a paginator, and a transformer. * * @param LengthAwarePaginator $paginator * @param callable|\League\Fractal\TransformerAbstract $transformer * @param string $resourceKey * @param array $meta * @return ResponseFactory */ public function withPaginator(LengthAwarePaginator $paginator, $transformer, $resourceKey = null, $meta = []) { $queryParams = array_diff_key($_GET, array_flip(['page'])); $paginator->appends($queryParams); $resource = new Collection($paginator->items(), $transformer, $resourceKey); $resource->setPaginator(new IlluminatePaginatorAdapter($paginator)); foreach ($meta as $metaKey => $metaValue) { $resource->setMetaValue($metaKey, $metaValue); } $rootScope = $this->manager->createData($resource); return $this->withArray($rootScope->toArray()); }
/** * @param LengthAwarePaginator $paginator * @param \League\Fractal\TransformerAbstract|\Closure $transformer * @param string $resourceKey * @return mixed */ public function respondPaginatedCollection(LengthAwarePaginator $paginator, $transformer = null, $resourceKey = null) { $paginator->appends($this->request->query()); $resource = new Collection($paginator->items(), $this->getTransformer($transformer), $resourceKey); $resource->setPaginator(new IlluminatePaginatorAdapter($paginator)); $rootScope = $this->manager->createData($resource)->toArray(); return $this->respondWithArray($rootScope); }