Cara Membuat Paginasi di Laravel 8
Setelah belajar crud di laravel 8 kemudian juga tentang bagaimana menggunakan seeder dan faker, maka langkah selanjutnya adalah belajar membuat paginasi pada laravel. Secara sederhana paginasi ini merupkan sebuah cara untuk membagi konten/data menjadi beberapa halaman atau bagian.
Sebelumnya saya asumsikan disini bahwa Anda sudah memiliki data yang akan di paginasikan menggunakan fitur pagination dari laravel, dan disini saya akan menggunakan/melanjutkan contoh kode pada tutorial sebelumnya yaitu dari contoh sederhana crud laravel 8.
Berikut ini Cara Membuat Paginasi di Laravel 8
- Buat controller masing – masing atau buat controller baru kemudian pada controller buat function seperti berikut
public function index() { $pegawai = DB::table('pegawai')->paginate(10); //menampilkan data sebanyak 10 perhalaman return view('pegawai_table',['pegawai'=>$pegawai]); }
- Sebelum menambahkan paginasinya, disini kita akan menggunakan paginasi bootstrap
- Buka file RouteServiceProvider.php pada folder app/Providers kemudian panggil kode paginasi dan use bootstrap seperti contoh berikut :
<?php namespace App\Providers; use Illuminate\Cache\RateLimiting\Limit; use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider; use Illuminate\Http\Request; use Illuminate\Support\Facades\RateLimiter; use Illuminate\Support\Facades\Route; //tambahkan paginasi use Illuminate\Pagination\Paginator; class RouteServiceProvider extends ServiceProvider { /** * The path to the "home" route for your application. * * This is used by Laravel authentication to redirect users after login. * * @var string */ public const HOME = '/home'; /** * The controller namespace for the application. * * When present, controller route declarations will automatically be prefixed with this namespace. * * @var string|null */ // protected $namespace = 'App\\Http\\Controllers'; /** * Define your route model bindings, pattern filters, etc. * * @return void */ public function boot() { Paginator::useBootstrap(); //gunakan bootstrap $this->configureRateLimiting(); $this->routes(function () { Route::prefix('api') ->middleware('api') ->namespace($this->namespace) ->group(base_path('routes/api.php')); Route::middleware('web') ->namespace($this->namespace) ->group(base_path('routes/web.php')); }); } /** * Configure the rate limiters for the application. * * @return void */ protected function configureRateLimiting() { RateLimiter::for('api', function (Request $request) { return Limit::perMinute(60)->by(optional($request->user())->id ?: $request->ip()); }); } }
- Buat file baru pada folder resources/views dengan nama misal pegawai_table.blade.php kemudian kodenya seperti berikut:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title> Daftar Pegawai</title> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.0.0/dist/css/bootstrap.min.css"> </head> <body> <div class="container"> <h3 class="text-center">Data Pegawai</h3> <div class="container-fluid"> <div class="row"> <table class="table table-bordered table-striped table-hover"> <tr> <th>ID</th> <th>Nama</th> <th>Jabatan</th> <th>Umur</th> <th>Alamat</th> <th>Aksi</th> </tr> @foreach($pegawai as $data) <tr> <td>{{$data->id}}</td> <td>{{$data->nama_lengkap}}</td> <td>{{$data->jabatan}}</td> <td>{{$data->umur}}</td> <td>{{$data->alamat}}</td> <td><a href="/pegawai/edit/{{$data->id}}">Edit</a> / <a href="/pegawai/delete/{{$data->id}}">Delete</a></td> </tr> @endforeach <tr> <td colspan="6"><a href="/pegawai/create">Tambah Pegawai</a></td> </tr> </table> <p>Halaman : {{$pegawai->currentPage()}} / Jumlah Data : {{$pegawai->total()}} / Data perhalaman :{{$pegawai->perPage()}}<br/></p> </div> <div class="d-flex"> <div class="mx-auto"> {{$pegawai->links()}} </div> </div> </div> </div> </body> </html>
Jika berhasil, maka tampilan paginasi halamannya akan terlihat seperti berikut :
Pada saat menggunakan paginasi pada laravel, ada beberapa opsi atau fungsi yang bisa diakses seperti yang sudah dicontoh pada kode pegawai_table.blade.php diatas, diantaranya :
- links() untuk menampilkan penomoran/paginasi halaman
- currentPage() untuk menampilkan halaman aktif sekarang
- total() untuk menampilkan total halaman
- perPage() untuk menampilkan data per halaman
Baca selanjutnya : Membuat Form Pencarian Data Pada Laravel 8
0 Response to "Cara Membuat Paginasi di Laravel 8"
Post a Comment
Komentar yang Anda kirim akan terlebih dahulu di moderasi oleh Admin