Paginasi adalah proses membagi hasil kueri database menjadi beberapa halaman yang terpisah. Ini sangat berguna ketika Anda memiliki banyak data yang perlu ditampilkan dalam tampilan yang terorganisir dan mudah dijelajahi oleh pengguna.
Dalam konteks Laravel, "paginate" mengacu pada metode yang disediakan oleh framework untuk mengelola paginasi data. Anda dapat menggunakan metode paginate()
pada hasil kueri database Anda untuk membagi data menjadi halaman-halaman yang lebih kecil.
Berikut adalah contoh penggunaan metode paginate()
dalam Laravel:
$users = DB::table('users')->paginate(10);
Kasus
dilihat dari code diatas bahwa code diatas berasal dari model yang telah dibuat. kasusnya adalah bagaimana cara kita membuat paginasi dengan data array yang telah kita buat dan digunakan hampir sama dengan bawaan yang ada pada laravel. mari kita buat:
Buat file trait baru berinama Tools.php didalam utils difolder contollers\utils
Lalu ketik code dibawah ini:
<?php
namespace App\\Http\\Controllers\\utils;
use Illuminate\\Pagination\\Paginator;
use Illuminate\\Support\\Collection;
use Illuminate\\Pagination\\LengthAwarePaginator;
trait Tools
{
public function custom_paginate($items, $perPage = 20, $page = null, $options = [])
{
$page = $page ?: (Paginator::resolveCurrentPage() ?: 1);
$items = $items instanceof Collection ? $items : Collection::make($items);
return new LengthAwarePaginator($items->forPage($page, $perPage), $items->count(), $perPage, $page, $options);
}
}
Cara menggunakannya didalam controller adalah pertama kita import dulu file Tools.php didalam controller yang kita inginkan. terus masukan perintah use Tools didalam controller. seperti code dibawah ini:
use App\\Http\\Controllers\\utils\\Tools;
use User;
class GuruController extends Controller{
**use Tools;**
public function index()
{
$model_user = User::all()->toArray();
$data = $this->custom_paginate($model_user);
return view('halaman',compact('data'));
}
}
Sampai disini penggunaan paginasi sudah seperti menggunakan metode paginate() bawaan dari laravel.
{{$data->links()}}
Selamat mencoba…