Laravel - Personalisasi Penggunaan Halaman
Hai, para pengembang berbakat! Hari ini, kita akan mendalamkan dunia yang menakjubkan penggunaan halaman (pagination) di Laravel. Sebagai guru ilmu komputer tetangga yang ramah, saya sangat gembira untuk mengantar Anda dalam perjalanan ini. Jangan khawatir jika Anda baru belajar pemrograman – kita akan mulai dari dasar dan naik tingkat per tingkat. Jadi, ambil secangkir kopi (atau teh, jika itu hal yang Anda sukai), dan mari kita mulai!
Apa Itu Penggunaan Halaman?
Sebelum kita melompat ke personalisasi, mari kita pahami apa itu penggunaan halaman. Bayangkan Anda punya buku dengan ratusan halaman. Membacanya semua sekaligus pasti akan membuat Anda merasa lelah, kan? Itu di mana penggunaan halaman memainkan perannya. Dalam pengembangan web, penggunaan halaman adalah seperti membagi bukunya menjadi bagian yang mudah dimanage, menampilkan jumlah item terbatas per halaman.
Laravel, kerangka kerja superhero kita, datang dengan fitur penggunaan halaman bawaan yang membuat hidup kita mudah. Tetapi kadang-kadang, kita ingin menambahkan keunikan sendiri ke hasil penggunaan halaman ini. Itu di mana personalisasi sangat berguna!
Penggunaan Halaman Dasar di Laravel
Mari kita mulai dengan contoh sederhana tentang cara penggunaan halaman bekerja di Laravel:
$users = User::paginate(15);
Baris kode ini mengambil pengguna dari basis data dan menggunaannya, menampilkan 15 pengguna per halaman. Itu seperti magik, bukan? Tetapi apa jika kita ingin membuat penggunaan halaman ini terlihat lebih indah? Itu di mana perjalanan personalisasi kita dimulai!
Personalisasi Tampilan Penggunaan Halaman
Langkah 1: Publikasi Tampilan Penggunaan Halaman
Pertama, kita perlu publikasi tampilan penggunaan halaman Laravel. Jangan khawatir; itu jauh lebih mudah dari yang Anda pikirkan! Jalankan perintah ini di terminal Anda:
php artisan vendor:publish --tag=laravel-pagination
Perintah ini adalah seperti memberitahu Laravel, "Hei, saya ingin melihat file penggunaan halaman ini sehingga saya dapat mengubahnya!"
Langkah 2: Mengubah Tampilan
Sekarang, buka resources/views/vendor/pagination
. Anda akan menemukan beberapa file di sini. Fokuskan pada default.blade.php
. File ini mengontrol bagaimana tautan penggunaan halaman Anda terlihat.
Ini adalah personalisasi sederhana:
@if ($paginator->hasPages())
<nav>
<ul class="pagination">
{{-- Tautan Halaman Sebelumnya --}}
@if ($paginator->onFirstPage())
<li class="disabled"><span>«</span></li>
@else
<li><a href="{{ $paginator->previousPageUrl() }}" rel="prev">«</a></li>
@endif
{{-- Element Penggunaan Halaman --}}
@foreach ($elements as $element)
{{-- "Tiga Titik" Pemisah --}}
@if (is_string($element))
<li class="disabled"><span>{{ $element }}</span></li>
@endif
{{-- Array Dari Tautan --}}
@if (is_array($element))
@foreach ($element as $page => $url)
@if ($page == $paginator->currentPage())
<li class="active"><span>{{ $page }}</span></li>
@else
<li><a href="{{ $url }}">{{ $page }}</a></li>
@endif
@endforeach
@endif
@endforeach
{{-- Tautan Halaman Selanjutnya --}}
@if ($paginator->hasMorePages())
<li><a href="{{ $paginator->nextPageUrl() }}" rel="next">»</a></li>
@else
<li class="disabled"><span>»</span></li>
@endif
</ul>
</nav>
@endif
Kode ini mungkin terlihat menakutkan pertama kalinya, tapi mari kita pecahkannya:
- Kita periksa jika ada halaman yang banyak (
$paginator->hasPages()
). - Kita buat navigasi dengan daftar tak berurutan.
- Kita tambahkan tautan "Sebelumnya" jika kita tidak di halaman pertama.
- Kita perulangan melalui elemen penggunaan halaman, menambahkan tautan untuk setiap halaman.
- Kita tambahkan tautan "Selanjutnya" jika ada halaman lainnya.
Penyusunan gaya Penggunaan Halaman
Sekarang kita telah mempersonalisasi struktur penggunaan halaman, mari kita buatnya terlihat cantik! Tambahkan beberapa CSS ke stylesheet Anda:
.pagination {
display: flex;
list-style: none;
padding: 0;
}
.pagination li {
margin: 0 5px;
}
.pagination li a {
text-decoration: none;
padding: 5px 10px;
border: 1px solid #ddd;
color: #333;
}
.pagination li.active span {
background-color: #007bff;
color: white;
padding: 5px 10px;
border: 1px solid #007bff;
}
.pagination li.disabled span {
color: #ccc;
padding: 5px 10px;
border: 1px solid #ddd;
}
CSS ini akan memberikan penggunaan halaman Anda penampilan yang bersih dan modern. Itu seperti memberikan pakaian kemasan bagi kode Anda!
Personalisasi Tingkat Lanjut
Personalisasi Penggunaan Halaman Menggunakan Penampil
Untuk personalisasi tingkat lanjut, Laravel memungkinkan kita untuk membuat penampil khusus. Mari kita buat satu:
- Buat file baru
app/Http/Presenters/CustomPaginationPresenter.php
:
<?php
namespace App\Http\Presenters;
use Illuminate\Pagination\BootstrapPresenter;
class CustomPaginationPresenter extends BootstrapPresenter
{
public function render()
{
if (!$this->hasPages()) {
return '';
}
return sprintf(
'<div class="custom-pagination">%s %s %s</div>',
$this->getPreviousButton(),
$this->getLinks(),
$this->getNextButton()
);
}
protected function getAvailablePageWrapper($url, $page, $rel = null)
{
$rel = is_null($rel) ? '' : ' rel="' . $rel . '"';
return '<span class="page-item"><a class="page-link" href="' . $url . '"' . $rel . '>' . $page . '</a></span>';
}
protected function getDisabledTextWrapper($text)
{
return '<span class="page-item disabled"><span class="page-link">' . $text . '</span></span>';
}
protected function getActivePageWrapper($text)
{
return '<span class="page-item active"><span class="page-link">' . $text . '</span></span>';
}
}
- Gunakan penampil ini di kontroler Anda:
use App\Http\Presenters\CustomPaginationPresenter;
public function index()
{
$users = User::paginate(15);
$presenter = new CustomPaginationPresenter($users);
return view('users.index', compact('users', 'presenter'));
}
- Dalam tampilan Anda, gunakan penampil ini:
{!! $presenter->render() !!}
Kesimpulan
Selamat! Anda baru saja belajar bagaimana mempersonalisasi penggunaan halaman di Laravel. Dari modifikasi dasar hingga penampil tingkat lanjut, Anda sekarang memiliki kekuatan untuk membuat hasil penggunaan halaman Anda terlihat seperti yang Anda inginkan.
Ingat, kunci untuk menguasai konsep ini adalah praktik. Cobalah membuat gaya berbeda, eksperimen dengan penampil, dan yang paling penting, bersenang-senang dengan itu! Penggunaan halaman mungkin tampak kecil, tetapi itu dapat meningkatkan pengalaman pengguna aplikasi Anda secara besar.
Sebagai penutup, ini adalah tabel yang menggabungkan metode yang kita cover:
Metode | Deskripsi |
---|---|
paginate() |
Metode penggunaan halaman dasar |
vendor:publish |
Publikasi tampilan penggunaan halaman |
hasPages() |
Periksa jika ada halaman yang banyak |
onFirstPage() |
Periksa jika di halaman pertama |
previousPageUrl() |
Dapatkan URL untuk halaman sebelumnya |
nextPageUrl() |
Dapatkan URL untuk halaman selanjutnya |
currentPage() |
Dapatkan nomor halaman saat ini |
hasMorePages() |
Periksa jika ada halaman lainnya |
Terus kode, terus belajar, dan ingat – setiap pengembang hebat dimulai dari level pemula. Anda sedang dalam perjalanan untuk menjadi ahli penggunaan halaman Laravel!
Credits: Image by storyset