# laravel內建分頁方法 Pagination #### 使用laravel 版本8.x :::info 建議可以先看這個教學影片,有畫面跟演示,可以瞭解基礎的部分。 [Laravel / Pagination / 做分頁好簡單(點我)](https://www.youtube.com/watch?v=dof8ezeYNRg) ::: :::warning 我有一個網頁,他叫最新消息。 長的像下面這樣。 ::: ![](https://i.imgur.com/0q9QK3j.png) :::warning 如果我有很多筆最新消息,他是不是就一路往下滑到不知道去哪了? 所以一般我們都會希望這個網頁可以有分頁,類似下面這樣子。 ::: ![](https://i.imgur.com/j5lDSty.png) :::warning 那要怎麼實現呢? 首先,要先知道,這個最新消息網頁的資料,是我透過controller傳進來的。 下面是我管理最新消息的controller檔案的內容。 ::: ![](https://i.imgur.com/K04T1L3.png) :::info 我們接下來要改造它,將`$news = News::get()`變成換掉,改成`paginate(number)`的方式。 ::: ![](https://i.imgur.com/WDgkJ4x.png) :::warning 還沒結束喔,接下來我們來到最新消息網頁的blade.php檔。 在程式碼區塊偏下的地方,也就是你希望出現←123456...→的地方,輸入`{{$news->links()}}`,這邊的`$news`是我的資料變數啦,你看你的資料變數是什麼,你就輸入你的,具體的格式是`{{你的資料變數->links()}}`。 像下面這樣,一般是放在`@endforeach`後面。 ::: ![](https://i.imgur.com/tdzPyeU.png) :::success 很好,現在重整你的這個網頁,然後拉到最下面,看看上一頁、下一頁、頁碼這些按鈕,是不是都有長出來。 ::: ![](https://i.imgur.com/bcRxNDD.png) :::danger 破圖了???? 我做錯了什麼?! ::: :::info laravel的Pagination實際上是套用bootstrap4(據說),但是我這個專案採用laravel8,laravel8已經內建bootstrap5,難道是因為這樣所以css沒辦法吃到? ::: :::warning 所以我開始去查各路英文中文等文獻,查官方網站文件,想看怎麼解決。 畢竟遇到框架衝突,我不是很熟...。 官網居然說laravel8建議採用tailwind css框架,我的整個專案都用bootstrap5寫前端架構耶,不會衝突嗎?! ::: :::success 沒啦,我誤會laravel8了,去找到app\Providers\AppServiceProvider.php這個檔案。在裡面加上下圖中的這一段程式碼。 記得要import Clsss。 ::: ![](https://i.imgur.com/TUzo4Mo.jpg) ```PHP= public function boot() { Paginator::useBootstrap(); } ``` :::success 現在回去你的網頁,重新整理之後,拉到最下面去看,長出來了吧? 至於頁碼的位置跟CSS,那又是另一個故事了,不過我想你們應該會自己處理。 ::: ![](https://i.imgur.com/QYAFtk8.png) :::danger 網路上看到有人用上面的方法沒辦法解的,是採用`{{$newss->links('pagination::bootstrap-4')}}`,因為我已經採用上面那個方式,所以不確定是否有效,有遇到問題的人可以試試看。 ::: ![](https://i.imgur.com/cXdh0Zh.png) ###### tags: `laravel` `laravel.8` `Pagination` `分頁` `laravel分頁功能` `paginate`