2017-05-19 50 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