NilPortugues\Laravel5\JsonApi\Eloquent\EloquentHelper::paginate PHP Method

paginate() public static method

public static paginate ( NilPortugues\Laravel5\JsonApi\JsonApiSerializer $serializer, Builder $builder, integer $pageSize = null ) : Builder
$serializer NilPortugues\Laravel5\JsonApi\JsonApiSerializer
$builder Illuminate\Database\Eloquent\Builder
$pageSize integer
return Illuminate\Database\Eloquent\Builder
    public static function paginate(JsonApiSerializer $serializer, Builder $builder, $pageSize = null)
    {
        self::sort($serializer, $builder, $builder->getModel());
        $request = RequestFactory::create();
        $builder->paginate($request->getPage()->size() ?: $pageSize, self::columns($serializer, $request->getFields()->get()), 'page', $request->getPage()->number());
        return $builder;
    }

Usage Example

 /**
  * Override the default index function to get many resources.
  * @property int filters['improvedId']
  * @property int filters['preservedId']
  * @return \Symfony\Component\HttpFoundation\Response
  */
 public function index()
 {
     $apiRequest = RequestFactory::create();
     $page = $apiRequest->getPage();
     if (!$page->size()) {
         $page->setSize($this->pageSize);
     }
     $fields = $apiRequest->getFields();
     $sorting = $apiRequest->getSort();
     $included = $apiRequest->getIncludedRelationships();
     $filters = $apiRequest->getFilters();
     $resource = new ListResource($this->serializer, $page, $fields, $sorting, $included, $filters);
     if ($filters == NULL) {
         $totalAmount = $this->totalAmountResourceCallable();
         $results = $this->listResourceCallable();
         $controllerAction = '\\' . get_called_class() . '@index';
         $uri = $this->uriGenerator($controllerAction);
         return $this->addHeaders($resource->get($totalAmount, $results, $uri, get_class($this->getDataModel())));
     } else {
         $improvedId = $filters['improvedParam'];
         $preservedId = $filters['preservedParam'];
         $totalAmount = function () use($improvedId, $preservedId) {
             $id = (new Solution())->getKeyName();
             return Solution::query()->where(['improvedParam' => $improvedId, 'preservedParam' => $preservedId])->get([$id])->count();
         };
         $results = function () use($improvedId, $preservedId) {
             return EloquentHelper::paginate($this->serializer, Solution::query()->where(['improvedParam' => $improvedId, 'preservedParam' => $preservedId]))->get();
         };
         $params = array('improvedParam' => $improvedId, 'preservedParam' => $preservedId);
         $queryString = http_build_query($params);
         $controllerAction = '\\' . get_called_class() . '@index';
         $uri = $this->uriGenerator($controllerAction);
         return $resource->get($totalAmount, $results, $uri, Solution::class);
     }
 }
All Usage Examples Of NilPortugues\Laravel5\JsonApi\Eloquent\EloquentHelper::paginate