CRUD Manajemen Artikel - Menampilkan Detail Artikel
5 Maret 2025
ยท
4 menit ยท

Setelah sebelumnya kita berhasil menampilkan daftar artikel menggunakan DataTables, kini saatnya kita memberikan pengalaman lebih lengkap dengan menampilkan detail tiap artikel.
Di artikel ini, kita akan menggunakan fitur route model binding dari Laravel untuk mengambil data artikel berdasarkan parameter URLโdengan cara yang sangat praktis. Fitur ini sempat kita singgung pada saat membuat controller.
Kita juga akan mempelajari bagaimana menampilkan gambar artikel dalam berbagai kondisi, seperti gambar default, URL eksternal, dan gambar yang disimpan di storage.
Ayo kita mulai!
Menyesuaikan Controller untuk Menampilkan Detail Artikel
Sekarang, kita akan menambahkan method show
di ArticleController
. Method ini bertugas untuk mengambil artikel berdasarkan parameter yang diterima dari URL dan mengirimkannya ke view.
Buka file ArticleController.php dan sesuaikan kode menjadi sebagai berikut:
๐ app/Http/Controllers/ArticleController.php
|
|
Fungsi
compact()
adalah fungsi bawaan PHP yang digunakan untuk mengubah variabel menjadi array asosiatif.Di sini, kita menggunakan
compact('article')
, yang artinya variabel$article
akan diteruskan ke view sebagai array dengan key ‘article’.
Menangani Gambar Artikel
Salah satu hal yang dibutuhkan dalam menampilkan artikel adalah gambar. Untuk menangani berbagai kondisi gambar, kita akan menambahkan accessor di model Article
:
- Jika gambar kosong (null), kita akan menampilkan gambar default.
- Jika gambar berupa URL lengkap, kita akan menampilkannya langsung.
- Jika gambar berupa file lokal yang disimpan di folder storage, kita akan mengaksesnya menggunakan File Storage (kita akan membahas storage lebih lanjut pada artikel lainnya).
Kita mendefinisikan konstanta IMAGE_STORAGE_PATH
agar path gambar konsisten dan mudah diubah dari satu tempat. Kini, kita tidak perlu lagi khawatir soal perubahan path, cukup ubah di satu tempat saja.
Buka file Article.php, lalu sesuaikan kode berikut:
๐ app/Models/Article.php
|
|
Membuat View untuk Menampikan Detail Artikel
Sekarang kita akan membuat tampilan untuk detail artikel.
Buka file resources/views/pages/articles/show.blade.php, kemudian tambahkan kode berikut:
๐ resources/views/pages/articles/show.blade.php
@extends('layouts.app')
@section('title', $article->title)
@section('content')
<div id="content" class="container">
<div class="row">
<div class="col-8 mx-auto">
<article>
<img src="{{ $article->feature_image_full_url }}" class="card-img-top mb-5" alt="{{ $article->title }}">
<h3>{{ $article->title }}</h3>
<p class="text-muted">{{ \Carbon\Carbon::parse($article->published_at)->format('F j, Y') }}</p>
<div class="my-5">
{!! $article->content !!}
</div>
</article>
</div>
</div>
</div>
@endsection
- Pada bagian gambar, kita menggunakan
{{ $article->feature_image_full_url }}
untuk menampilkan gambar sesuai method yang kita definisikan pada model, yaitu getFeatureImageFullUrlAttribute. - Untuk menampilkan tanggal sesuai format yang diinginkan, kita memanfaatkan library Carbon yang sudah di-install bersamaan dengan Laravel.
Contoh detail artikel akan tampil seperti berikut:

Menambahkan Link pada Daftar Artikel
Agar user bisa membuka detail artikel, kita perlu menambahkan link pada daftar artikel. Karena kita menggunakan DataTables, kita akan menyesuaikan kolom action pada method dataTable()
.
Buka file ArticleDataTable.php dan sesuaikan method dataTable()
menjadi sebagai berikut:
๐ app/DataTables/ArticleDataTable.php
|
|
- Seperti yang kita bahas pada saat membuat route, kita menggunakan konvensi penamaan Route saat membuat link menggunakan fungsi
route()
.
Hasil dari pengubahan di atas adalah sebagai berikut:

Sekarang kita sudah berhasil menampilkan detail artikel. Aplikasi blog yang kita bangun sudah mulai berfungsi sebagaimana mestinya.
Bagaimana cara menambahkan artikel baru ke dalam aplikasi blog? Kita akan pelajari bersama di artikel selanjutnya!