Membuat Halaman Pagination dengan Laravel
![laravel laravel](https://develoka.com/uploads/images/fc19e3610e9b483ed5e0c81e464586b8_cover.jpg)
Intro
Ketika kita membuat aplikasi dan dihadapkan dengan ribuan bahkan jutaan record
data yang harus ditampilkan maka kita perlu membaginya menjadi beberapa
halaman. Pagination dapat menjadi solusi yang cukup baik untuk
mengatasi hal tersebut. Mayoritas framework sudah menyediakan
fitur ini tanpa mengharuskan kita untuk membuatnya dari awal. Namun
dalam tutorial ini kita akan belajar tentang menggunakan pagination pada Framework Laravel.
Seperti dikutip pada Laravel Documentation
bahwa dengan laravel kita bisa membuat pagination dengan mudah. Laravel
dapat dengan cepat menghasilkan rentang halaman dari halaman sekarang
dan menghasilkan link ke halaman yang diinginkan.
Disarankan sebelum mengikuti tutorial ini kita sudah bisa menginstall
project Laravel, routing dan bisa menampilkan data dari database. Untuk
itu kita bisa enroll course Mari Berselancar dengan Framework Laravel untuk mempelajari cara installasi dan menampilkan database sebelum mengikuti tutorial ini.
Apa itu Pagination?
Pagination merupakan proses membagi dokumen ke dalam halaman terpisah, baik halaman elektronik atau halaman yang dicetak (Wikipedia). Intinya sih pagination adalah sebuah proses menampilkan data, dimana
data yang ditampilkan akan ditampilkan dengan membaginya menjadi
beberapa bagian/halaman secara merata.
Cara Penggunaan
Pada framework Laravel kita dapat mengimplementasikan pagination dengan Eloquent maupun Query Builder. Method paginate
bisa menentukan berapa jumlah data yang ingin kita tampilkan di setiap
halaman dimana proses menampilkan data sudah ditangani oleh Laravel.
Kita tau beres aja.
Pagination Eloquent
Pertama, kita panggil method
paginate
pada sebuah model. Pada method paginate
kita diminta untuk menambahkan parameter yang menunjukan jumlah data
yang ingin kita tampilkan per halamannya. Dalam kasus ini kita akan
menampilkan 15 data atau konten per halaman.<?php
namespace App\Http\Controllers;
use App\User;
use App\Http\Controllers\Controller;
class UserController extends Controller
{
/**
* Show all of the users for the application.
*
* @return Response
*/
public function index()
{
$users = User::paginate(15);
return view('user.index', ['users' => $users]);
}
}
paginate
memungkinkan kita untuk menggunakan constraints pada query seperti where
:$users = User::where('votes', '>', 100)->paginate(15);
"Simple Pagination"Selain
paginate
, kita juga bisa menggunakan method simplePaginate
yang hanya akan menampilkan Next dan Previous pada link pada halaman tampilan.$users = User::simplePaginate(15);
Pagination Query Builder
Kita juga dapat mengimplementasikan method
pagination
pada Query Builder. Pada contoh di bawah ini kita akan membuat halaman tabel user
dengan 15 data/record per halaman. Seperti di atas, kode program yang dituliskan mirip dengan implementasi pagination dengan Eloquent Model.<?php
namespace App\Http\Controllers;
use DB;
use App\Http\Controllers\Controller;
class UserController extends Controller
{
/**
* Show all of the users for the application.
*
* @return Response
*/
public function index()
{
$users = DB::table('users')->paginate(15);
return view('user.index', ['users' => $users]);
}
}
Kita juga bisa menggunakan method simplePaginate
ketika membuat halaman dengan Query Builder.$users = DB::table('users')->simplePaginate(15);
Saat ini, operasi pagination yang menggunakan method
GroupBy
tidak bisa dijalankan secara efisien oleh Laravel. Jika Kamu ingin menggunakan GroupBy
dengan set hasil paginasi, direkomendasikan untuk menggunakan query database dan membuat paginator secara manual.Menampilkan Hasil Pagination pada View
Di sini kita akan memanggil methodpaginate
atau simplePaginate
.views/user/index.blade.php
<div class="container">
@foreach ($users as $user)
{{ $user->name }}
@endforeach
</div>
{!! $users->render() !!}
0 komentar:
Posting Komentar