Judul Integrasi Blade Layout dengan Session Flash Message pada Laravel

Oleh Rizky Putri Awaliyah di 25 Sep 2025 | 14:07
Rizky Putri Awaliyah

Rizky Putri Awaliyah

Siswa
Postingan: 1
Anggota sejak: 19 Agt 2025

Proses pembuatan dan penampilan data produk di Laravel ini sudah berjalan dengan baik. Database MySQL telah berhasil dibuat dan diisi, termasuk dua tabel utama yaitu categories dan products yang saling terhubung melalui relasi foreign key pada kolom category_id. Data produk dimasukkan menggunakan database seeder, sehingga beberapa contoh produk seperti Laptop Pro 15, Smartphone X200, dan lainnya otomatis terisi. Karena seeder sempat dijalankan lebih dari satu kali, data produk terlihat berulang pada tabel. Setelah itu, rute /product menampilkan daftar produk dalam bentuk tabel melalui Blade template, lengkap dengan kolom nama produk, deskripsi, harga dalam format rupiah, stok, ID kategori, serta waktu pembuatan dan pembaruan data. Di bagian atas halaman juga muncul pesan hijau bertuliskan “Produk berhasil dimuat!” sebagai tanda bahwa flash message untuk status keberhasilan sudah bekerja. Secara keseluruhan, alur dari pembuatan tabel, pengisian data, sampai penampilan di browser menunjukkan integrasi penuh antara database, controller, dan tampilan Laravel telah berhasil.

resources/views/product/index.blade.php


@extends('layouts.app')


@section('content')

    @if ($products->isEmpty())

        <div class="alert alert-warning">

            Belum ada produk yang tersedia.

        </div>

        <p>Tidak ada produk untuk ditampilkan.</p>

    @else

        <table class="table">

            <thead>

                <tr>

                    <th>#</th><th>Nama Produk</th><th>Deskripsi</th><th>Harga</th>

                </tr>

            </thead>

            <tbody>

                @foreach ($products as $product)

                <tr>

                    <td>{{ $loop->iteration }}</td>

                    <td>{{ $product->name }}</td>

                    <td>{{ $product->description }}</td>

                    <td>{{ number_format($product->price,0,',','.') }}</td>

                </tr>

                @endforeach

            </tbody>

        </table>

    @endif

@endsection


Tampilan ini menunjukkan kondisi ketika database untuk tabel produk belum memiliki data sama sekali. Saat halaman /product dibuka, Laravel melalui controller akan mencoba mengambil daftar produk dari tabel products. Karena tabel tersebut masih kosong—misalnya setelah database baru dibuat atau setelah proses migrate:fresh tanpa seeding—maka query pengambilan data tidak menemukan satupun baris. Blade template kemudian menampilkan pesan peringatan berwarna kuning “Belum ada produk yang tersedia.” dan di bagian daftar produk muncul keterangan “Tidak ada produk untuk ditampilkan.”. Artinya, struktur tabel sudah siap, tetapi isi tabel products belum diisi, sehingga belum ada informasi produk yang bisa ditampilkan di antarmuka web.

resources/views/product/index.blade.php


@extends('layouts.app')


@section('content')

    @if ($products->isEmpty())

        <div class="alert alert-warning">

            Belum ada produk yang tersedia.

        </div>

        <p>Tidak ada produk untuk ditampilkan.</p>

    @else

        <table class="table">

            <thead>

                <tr>

                    <th>#</th><th>Nama Produk</th><th>Deskripsi</th><th>Harga</th>

                </tr>

            </thead>

            <tbody>

                @foreach ($products as $product)

                <tr>

                    <td>{{ $loop->iteration }}</td>

                    <td>{{ $product->name }}</td>

                    <td>{{ $product->description }}</td>

                    <td>{{ number_format($product->price,0,',','.') }}</td>

                </tr>

                @endforeach

            </tbody>

        </table>

    @endif

@endsection

Penyebab tampilan kosong: Tabel products tidak memiliki baris data.


Solusi: Jalankan seeder atau masukkan data produk secara manual. Misalnya:

php artisan db:seed --class=ProductSeeder

Setelah data produk dimasukkan, halaman /product akan menampilkan daftar produk sesuai isi database.



25 Sep 2025 | 14:07
0 Suka

Laporkan

Silakan jelaskan laporan secara singkat dan jelas.