Pagination berguna untuk membuat penomoran halaman. misalnya kita memiliki banyak row. katakanlah ada 200 bahkan ribuan row data. saat data tersebut tampil pada website atau aplikasi yang kita buat pasti akan terlalu panjang ke bawah.
Di sinilah kita memerlukan pagination atau penomoran halaman. jadi kita bisa mengatur berapa jumlah row data yang ingin ditampilkan. dan selebihnya akan dipisah-pisah menjadi beberapa halaman.
Nanti jumlah halamannya akan otomatis di buat tergantung berapa jumlah data. dan berapa row data yang ingin ditampilkan per halaman nya.
Di sini kita akan membuat contoh dengan menampilkan data dari database. baru kemudian kita akan belajar membuat pagination dengan laravel.
Untuk tutorial menampilkan data dari database dengan Laravel sudah di jelaskan sebelumnya pada tutorial CRUD Laravel dan untuk memperbanyak data gunakan Library Fake
Buat controller UserController dan method index jika belum. Jika sudah mengikuti Tutorial sebelumnya mari kita perbarui kodenya.
learning_laravel/app/Http/controllers/UserController.php
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; class UserController extends Controller { public function index(){ $data['title']="User CRUD"; // mengambil data dari table user $data['user']=DB::table('user')->paginate(10); // mengirim data user ke view index return view('user',$data); } }
Untuk membuat pagination kita cukup menggunakan fungsi ->paginate(10).
Angka 10 di sini bermaksud menentukan untuk membuat pagination yang masing-masing halamannya akan menampilkan 10 row data.
Buat/perbaharui view nya. yaitu view user.blade.php.
<!DOCTYPE html> <html> <head> <title>{{$title}}</title> </head> <style type="text/css"> .pagination li{ float: left; list-style-type: none; margin:5px; } </style> <body> <h2>{{config('app.name')}}</h2> <h3>{{$title}}</h3> <a href="/user/create"> + Tambah User Baru</a> <br/> <br/> <table border="1"> <tr> <th>Fullname</th> <th>Email</th> <th>Last Login</th> <th>Last Update</th> <th>Action</th> </tr> @foreach($user as $list) <tr> <td>{{ $list->fullname }}</td> <td>{{ $list->email }}</td> <td>{{ $list->last_login }}</td> <td>{{ $list->last_update }}</td> <td> <a href="/user/update/{{ $list->uid }}">Edit</a> | <a href="/user/delete/{{ $list->uid }}">Hapus</a> </td> </tr> @endforeach </table> <br/> Halaman : {{ $user->currentPage() }} <br/> Jumlah Data : {{ $user->total() }} <br/> Data Per Halaman : {{ $user->perPage() }} <br/> {{ $user->links() }} </body> </html>
Tampilannya akan terlihat sbb:
