Laravel 5.4---後端數據分頁和前端顯示分頁結果

後端數據(Eloquent 模型)分頁php

事先創建好Eloquent 模型和Controller 還有 前臺的View。能夠參考我以前的文章:Laravel建站03--創建前臺文章列表和文章詳情html

在controller 裏獲取分頁數據:laravel

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use App\Article;

use Illuminate\Support\Facades\Cache;
use Carbon\Carbon;

class ArticleController extends Controller
{
    public function index()
    {
        //方式一:能夠用 facade 進行接近原生SQL方式查詢,也能夠徹底用SQL語句,如:$users = DB::select('select * from users where active = 1');。不過我得這樣很差
        // $articles = DB::table('articles')
        //             ->select('id', 'body', 'title')
        //             ->orderBy('id', 'desc')
        //             ->paginate(5);   //分頁的關鍵,這裏是能夠顯示頁碼的分頁,也能夠用簡單分頁,只顯示上一頁,下一頁。數據量大時,簡單分頁會更快
        //方式二:模型直接分頁
        //$articles = Article::paginate(5);
        //方式三:模型簡單分頁
        //$articles = Article::simplePaginate(5);
        //在方式二的基礎上增長排序規則
        //$articles = Article::orderBy('id', 'desc')->paginate(5);
        //在方式三的基礎上增長查詢的列
        $articles = Article::select('id', 'title')->orderBy('id', 'desc')->paginate(5);
        return view('welcome', ['articles' => $articles]);
    }
}DB

 

前臺顯示分頁結果後端

  • 在Laravel中顯示分頁HTML仍是很簡單的。只用一句話就能夠搞定:
{{ $articles->links() }}
  •  若是想在前臺分頁鏈接中附加參數,能夠在controller綁定view中增長參數:
return view('welcome', ['articles' => $articles, 'params1' => 'a', 'params2'=>'b']);

  而後把前臺的代碼修改成:app

{{ $articles->appends(['p1' => $params1, 'p2' => $params2])->links() }}

  這樣前臺分頁的地址就從?page=2 變成?p1=a&p2=b&page=2 了。spa

  • 自定義分頁HTML

  想自定義分頁HTML,能夠修改Laravel分頁視圖:vendor/laravel/framework/src/Illuminate/Pagination/resources/views/ 文件夾下的視圖文件code

相關文章
相關標籤/搜索