拉拉维尔 雄辩的分页控制页码与路由



Articles::paginate(10)此代码将返回第 1 篇 10 篇文章,如果我想使用 route 返回接下来的 10 篇文章怎么办?例如,url mypage.com/articles/2将从数据库中返回第 2 篇第 10 篇文章。
到目前为止,这就是我所拥有的:
路线:

Route::get('articles/{page_number}', 'Controller@getArticles')

控制器:

public function getArticles($page_num)
{
    $perPage = 10;
    Articles::getPaginator()->setCurrentPage($page_num);
    $articles = Articles::paginate($perPage);
    return $articles;
}

我可以有类似Articles::pageNumber($page_number)->paginate($perPage);的东西吗?

Laravel分页器会自动检查查询字符串中page的值,并使用它来对结果进行分页。结果还会自动生成下一个和上一个链接,以帮助您直接添加它们。您无需更改任何内容即可使其正常工作。

在您的情况下,您可以使用视图中的$articles->links()来生成分页导航按钮。但是,如果您想手动设置页面,则可以执行此操作。

$articles = Articles::paginate(5, ['*'], 'page', $pageNumber);

默认分页方法采用以下参数。

public function paginate($perPage = null, $columns = ['*'], $pageName = 'page', $page = null);

默认约定是

mypage.com/articles?page=2
mypage.com/articles?page=3

此外,如果您使用 $articles->links() 生成导航按钮,您还可以自定义 css。

查看 https://laravel.com/docs/5.4/pagination 了解更多信息

$results= DB::table('subscribers')->select('id', 'name', 'email')->paginate(20);
$results->count();
$results->currentPage();
$results->firstItem();
$results->hasMorePages();
$results->lastItem();
$results->lastPage(); (Not available when using simplePaginate)
$results->nextPageUrl();
$results->perPage();
$results->previousPageUrl();
$results->total(); (Not available when using simplePaginate)
$results->url($page);

最新更新