Halaman Blog - Menampilkan Daftar Artikel
10 Maret 2025
ยท
4 menit ยท

Setelah sebelumnya kita membangun fitur-fitur manajemen artikel dari sisi admin, kini kita akan mulai membangun tampilan publik โ bagian yang diakses langsung oleh pengunjung blog.
Pada artikel ini, kita akan membuat halaman utama dengan menampilkan daftar artikel yang dapat diakses publik (sering disebut blog list atau blog roll). Halaman ini akan menjadi pintu masuk utama bagi pengunjung untuk menjelajahi konten blog yang sudah kita buat.
Menyesuaikan Controller untuk Menampilkan Daftar Artikel
Sekarang kita akan menambahkan method baru di ArticleController
bernama blogList()
. Method ini akan mengambil daftar artikel yang telah dipublikasikan dan menampilkannya ke pengguna melalui View.
Sesuaikan kode menjadi seperti berikut:
๐ app/Http/Controllers/ArticleController.php
|
|
Pada bagian ini, kita mengambil daftar artikel dengan ketentuan sebagai berikut:
->orderBy('published_at', 'desc')
diurutkan berdasarkan waktu publikasi terbaru,->where('published_at', '<=', now())
waktu publikasinya telah tiba,->where('status', Article::STATUS_PUBLISHED)
statusnya adalah Published (Sudah Terbit),
…serta ditampilkan per 6 item dalam satu halaman dengan pagination bawaan Laravel.
Membuat Accessor pada Model
Pada daftar artikel, kita akan menampilkan ringkasan konten. Untuk itu, mari kita tambahkan sebuah accessor, yaitu method khusus pada model seperti berikut:
๐ app/Models/Article.php
|
|
- Baris 9
Menghapus semua tag HTML pada konten apabila ditemukan. - Baris 11
Jika panjang konten melebihi 255 karakter, kita ambil 255 karakter pertama dan tambahkan...
di akhir. Jika tidak, tampilkan konten secara utuh.
Membuat View untuk Menampilkan Daftar Artikel
Untuk menampilkan daftar artikel, mari kita buat View sederhana yang hanya berisi: judul, ringkasan konten, dan tautan ke detail artikel.
Buat sebuah file View baru sebagai berikut:
๐ resources/views/pages/articles/blog_list.blade.php
|
|
- Baris 19
Kita menggunakan{{ $article->excerpt }}
untuk menampilkan ringkasan konten sesuai method yang kita definisikan pada model, yaitu getExcerptAttribute. - Baris 22
Mengubah timestamp$article->published_at
ke object penanggalan Carbon. Lalu, mengubahnya menjadi format yang lebih mudah dibaca manusia (seperti: 2 hours ago, 3 days ago, atau 1 month ago) menggunakan methoddiffForHumans()
. - Baris 30
Menampilkan navigasi pagination bawaan Laravel.Untuk mempelajari Pagination pada Laravel, silakan merujuk pada dokumentasi Laravel: Database: Pagination.
Menyesuaikan View Pagination Laravel
Secara default, view pagination Laravel menggunakan styling dari Tailwind CSS. Agar view pagination dapat tampil dengan baik pada aplikasi kita, mari kita sesuaikan AppServiceProvider menjadi seperti berikut:
๐ app/Providers/AppServiceProvider.php
|
|
Dengan menambahkan method Paginator di atas, Laravel akan menggunakan view pagination berbasis Bootstrap 5.
Membuat Route untuk Menampilkan Daftar Artikel
Tambahkan route seperti berikut:
๐ routes/web.php
|
|
Di sini, kita menambahkan sebuah route yang apabila pengguna mengakses /
, pengguna akan diarahkan ke method blogList()
pada ArticleController
.
Penambahan route
/
tidak akan menggangguRoute::resource('articles', ...)
, karena URI-nya berbeda dan Laravel akan mencocokkannya secara eksplisit.
Hasil Akhir


Dengan langkah-langkah di atas, kita telah berhasil menampilkan daftar artikel secara publik โ ini menjadi dasar tampilan frontend aplikasi blog kita.
Pada artikel selanjutnya, kita akan membuat halaman detail untuk masing-masing artikel! Mari kita lanjutkan! ๐