laravel高效實(shí)現(xiàn)首頁加載10條和分頁加載5條數(shù)據(jù)
本文介紹如何在單個(gè)Laravel接口中實(shí)現(xiàn)移動(dòng)端文章列表的雙重加載需求:首頁加載10條數(shù)據(jù),后續(xù)分頁加載每次5條數(shù)據(jù)。
業(yè)務(wù)場(chǎng)景
移動(dòng)端文章列表接口需要滿足以下條件:
- 首次加載顯示10篇文章。
- 用戶下拉刷新或上拉加載更多時(shí),每次加載5篇文章。
實(shí)現(xiàn)方案
無需創(chuàng)建兩個(gè)獨(dú)立接口,一個(gè)接口即可滿足需求。關(guān)鍵在于靈活處理前端傳遞的參數(shù)。
-
首次加載 (首頁):
前端請(qǐng)求接口時(shí),傳遞per_page=10和page=1參數(shù)。
-
分頁加載:
用戶觸發(fā)加載更多時(shí),前端傳遞per_page=5,并將page參數(shù)遞增。
Laravel代碼實(shí)現(xiàn)
public function getArticles(Request $request) { $perPage = $request->input('per_page', 10); // 默認(rèn)10 $page = $request->input('page', 1); // 默認(rèn)1 $articles = Article::paginate($perPage, ['*'], 'page', $page); return response()->json($articles); }
前端請(qǐng)求示例 (使用axios)
首次加載:
axios.get('/api/articles', { params: { per_page: 10, page: 1 } }) .then(response => { // 處理數(shù)據(jù) });
分頁加載 (假設(shè)當(dāng)前頁碼為currentPage)
axios.get('/api/articles', { params: { per_page: 5, page: currentPage + 1 } }) .then(response => { // 處理數(shù)據(jù),更新currentPage });
通過paginate方法,Laravel優(yōu)雅地處理分頁邏輯。 前端通過控制per_page和page參數(shù),輕松實(shí)現(xiàn)首頁加載和分頁加載的不同數(shù)據(jù)數(shù)量。 此方法簡(jiǎn)潔高效,避免了冗余代碼,提高了接口的可維護(hù)性。
? 版權(quán)聲明
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載。
THE END