diff --git a/composer.json b/composer.json index ca3d6c6..682d159 100644 --- a/composer.json +++ b/composer.json @@ -1,5 +1,5 @@ { - "name": "kalnoy/nestedset", + "name": "sozidatel79/nestedset", "description": "Nested Set Model for Laravel 4-5", "keywords": ["laravel", "nested sets", "nsm", "database", "hierarchy"], "license": "MIT", diff --git a/src/QueryBuilder.php b/src/QueryBuilder.php index b406c48..87e99ba 100644 --- a/src/QueryBuilder.php +++ b/src/QueryBuilder.php @@ -11,6 +11,7 @@ use Illuminate\Support\Arr; use LogicException; use Illuminate\Database\Query\Expression; +use Illuminate\Pagination\Paginator; class QueryBuilder extends Builder { @@ -1085,4 +1086,27 @@ public function root(array $columns = ['*']) { return $this->whereIsRoot()->first($columns); } + + /** + * @param null $perPage + * @param array $columns + * @param string $pageName + * @param null $page + * @return \Illuminate\Contracts\Pagination\LengthAwarePaginator|\Illuminate\Pagination\LengthAwarePaginator + */ + public function paginate($perPage = null, $columns = ['*'], $pageName = 'page', $page = null) + { + $page = $page ?: Paginator::resolveCurrentPage($pageName); + + $perPage = $perPage ?: $this->model->getPerPage(); + + $results = ($total = $this->toBase()->getCountForPagination()) + ? $this->forPage($page, $perPage)->get($columns) + : $this->model->newCollection(); + + return $this->paginator($results, $total, $perPage, $page, [ + 'path' => Paginator::resolveCurrentPath(), + 'pageName' => $pageName, + ]); + } }