Bài 15. Sử dụng Pagination trong Laravel 5

Bài trước mình đã giới thiệu về Query Builder trong Laravel 5 và hướng dẫn các bạn áp dụng Query Builder để hiển thị tin lên trang chủ. Bài hôm nay chúng ta sẽ đi tìm hiểu về Pagination trong Laravel 5 và sẽ hướng dẫn các bạn áp dụng Pagination để hiển thị list tin lên trang chủ.

Mục Lục:

1. Giới thiệu

Khi sử dụng code thuần, việc phân trang có thể rất khó khăn. Phân trang trong Laravel được tích hợp với Query Builder và Eloquent ORM giúp cho việc phân trang trở nên dễ dàng và thuận tiện hơn. HTML được ta ra theo khuôn của Bootstrap CSS .

2. Các sử dụng Pagination

Phân trang với Eloquent

Bạn cũng có thể phân trang với truy vấn Eloquent . Trong ví dụ này, chúng ta sẽ phân trang bảng users với 15 tin trên 1 trang.

        $users = App\User::paginate(15);
        return view('user.index', ['users' => $users]);
    

Khi đó trên view index để hiển thị phân trang ta làm như sau:

        
@foreach ($users as $user) {{ $user->name }} @endforeach
{{ $users->links() }}

Phân trang với Query Builder

Cũng tương tự như Eloquent

        $users = DB::table('users')->paginate(15);
        return view('user.index', ['users' => $users]);
    

Khi đó trên view index để hiển thị phân trang ta làm như sau:

        
@foreach ($users as $user) {{ $user->name }} @endforeach
{{ $users->links() }}

Hiển thị list tin lên trang chủ

Lấy dữ liệu để phân trang, trong class HomeController thêm vào như sau

        namespace App\Http\Controllers\Home;
        use Illuminate\Support\Facades\DB;

        class HomeController extends BaseController
        {
            public function index ()
            {
                //$articles = Article::paginate(2); // Eloquent

                $articles = DB::table('articles')->paginate(2); // Query Builder
                return view('home.index', ['articles' => $articles]);
            }
        }
    

Hiển thị list ra trang chủ resources/views/home/index.blade.php

        @extends('home.base.base')
        @section('title', 'Trang chủ')
        @section('content')
            
{{ $articles->links() }}
@endsection

Test thử nào: http://localhost/tintuc/public

Trong bài này mình đã giới thiệu về Pagination trong Laravel 5 và hướng dẫn các bạn hiển thị list tin tức lên trang chủ. Trong series bài viết tiếp theo mình sẽ hướng dẫn các bạn về xóa public trên url, hiển thị chi tiết tin.