Example #1
0
 /**
  * Create FractalCollection payload with pagination.
  *
  * @param \Illuminate\Contracts\Pagination\LengthAwarePaginator $paginator
  * @param null                                                  $transformer
  * @param string|null                                           $resourceKey
  * @return mixed
  */
 public function getPagination(LengthAwarePaginator $paginator, $transformer = null, $resourceKey = null)
 {
     // Append existing query parameter to pagination link
     // @see http://fractal.thephpleague.com/pagination/#including-existing-query-string-values-in-pagination-links
     $queryParams = array_diff_key($_GET, array_flip(['page']));
     foreach ($queryParams as $key => $value) {
         $paginator->addQuery($key, $value);
     }
     $collection = $paginator->getCollection();
     $resource = new FractalCollection($collection, $this->getTransformer($transformer), $this->getResourceKey($resourceKey));
     $resource->setPaginator(new IlluminatePaginatorAdapter($paginator));
     if ($meta = $this->getMeta()) {
         $resource->setMeta($meta);
         $this->meta = [];
     }
     if ($includes = $this->getIncludes()) {
         $this->fractal->parseIncludes($this->request->input('include'));
         $this->includes = null;
     }
     return $this->fractal->createData($resource)->toArray();
 }
 /**
  * Make resource from an Eloquent paginator.
  *
  * @param  \Illuminate\Contracts\Pagination\LengthAwarePaginator $paginator
  * @return \League\Fractal\Resource\ResourceInterface
  */
 protected function makeFromPaginator(Paginator $paginator) : ResourceInterface
 {
     $resource = static::makeFromCollection($paginator->getCollection());
     if ($resource instanceof CollectionResource) {
         $resource->setPaginator(new IlluminatePaginatorAdapter($paginator));
     }
     return $resource;
 }