2017-05-19 91 views
0

Articles::paginate(10) 这段代码将返回前10条,如果我想返回下10条带路由的文章,该怎么办?例如,网址mypage.com/articles/2将从数据库中返回第二十条。
这是到目前为止我有:
路线:
Laravel功能分页控制页面编号与路线

​​

控制器:

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

我能有这样的事情Articles::pageNumber($page_number)->paginate($perPage);

回答

1

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更多信息

+0

我有错误'方法setCurrentPage不exist.' – Newbie

+0

@Newbie我的坏,它一直以来我与分页工作了很长一段时间。我更新了我的答案并测试了代码以确保。 – Sandeesh