Articles::paginate(10)
这段代码将返回前10篇文章,如果我想用路线返回接下来的10篇文章怎么办?例如,网址mypage.com/articles/2
将从数据库返回第2篇文章
到目前为止,我所拥有的是:
的路线:
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);
吗?
答案 0 :(得分:8)
Laravel paginator会自动检查查询字符串中page
的值,并使用它来对结果进行分页。结果还会自动生成下一个和上一个链接,以帮助您直接添加它们。你不需要改变任何东西来使其发挥作用。
在您的情况下,您可以在视图中使用$articles->links()
来生成分页导航按钮。但是如果你想手动设置页面,那么你可以这样做。
$articles = Articles::paginate(5, ['*'], 'page', $pageNumber);
默认的paginate方法采用以下参数。
public function paginate($perPage = null, $columns = ['*'], $pageName = 'page', $page = null);
默认约定是
mypage.com/articles?page=2
mypage.com/articles?page=3
此外,如果您使用$articles->links()
生成导航按钮,您还可以自定义css。