在laravel裏面要完成分頁是很簡單的,它的思想以前的框架有些不同,以前框架使用的是分頁類完成分頁,laravel是直接調用模型的分頁方法,返回對應的數據和分頁的字符串。css
分頁類的在框架中的位置(瞭解):html
案例:使用分頁功能實現當前member數據表的分頁效果。因爲數據量較少,能夠考慮每頁顯示1個記錄,重點是分頁的效果laravel
回憶/問題:分頁效果的實現大體須要哪幾個步驟才能實現?框架
a. 查詢符合分頁條件的總的記錄數佈局
b. 計算總的頁數(總記錄數/每頁記錄數,而且向上取整)url
c. 拼湊分頁的連接htm
d. (核心)使用limit語法來限制分頁的記錄數對象
e. 展現分頁的頁碼和分頁數據blog
f. 若是能夠,建議去考慮下分頁的樣式顯示問題教程
①建立路由,而且展現簡易列表頁面(table標籤佈局)
路由:
建立列表文件:
②編寫控制器中的方法代碼,實現沒有分頁的效果(先不考慮分頁效果)
③展現數據
無分頁展現效果:
④【案例】使用分頁展現上述的頁面
要求:每頁顯示一條記錄。
在laravel中分頁有2個提供者:DB查詢構建器,另外可使用模型來實現。
用法基本一致。
以模型爲例:
分頁的基本語法:
Model::paginate(每頁顯示的記錄數) 一樣,paginate和get同樣,支持使用where以及orderBy等輔助查詢的方法。
不展現分頁連接的效果:
在頁面中展現分頁連接:
語法:{{$保存數據的對象 -> links()}}生成的連接
目前顯示效果:
⑤【可選】將頁面的提示「>>」和「<<」改爲上一頁和下一頁提示文字
直接改源碼文件:
改成提示文字:
注意:可使用simplePaginate()表示簡單分頁,只有上一頁和下一頁,沒有分頁字符串。
例如:$info = Member::orderby('age','desc')->simplePaginate(2);
附:分頁數據對象的其餘實用方法以下
分頁數據對象->count() //當前頁數據條數
分頁數據對象->currentPage() //當前頁碼
分頁數據對象->firstItem() //當前頁第一條數據的序號
分頁數據對象->hasMorePages() //是否有後續頁碼
分頁數據對象->lastItem() //當前頁最後一條數據的序號
分頁數據對象->lastPage() //最後頁序號
分頁數據對象->nextPageUrl() //下一頁的連接地址
分頁數據對象->perPage() //每頁顯示數據條數
分頁數據對象->previousPageUrl() //上一頁的連接地址
分頁數據對象->total() //記錄總條數
分頁數據對象->url(5) //製做指定頁碼的連接地址
將頁碼稍做處理,寫的好看點:
樣式代碼能夠百度上尋找:http://www.javashuo.com/article/p-xjjflwuq-db.html
將css代碼引入到當前的分頁頁面,最終顯示效果: