DEV Community

Fadli Hidayatullah
Fadli Hidayatullah

Posted on

Flashing Message in Laravel

Seringkali ketika melakukan aksi seperti menyimpan, memberbarui, atau menghapus data, kita melakukan redirect dan kemudian butuh untuk menampilkan pesan 'alert' bahwa aksi telah berhasil dilakukan.

Kita gunakan method with(), dimana method ini akan melakukan flashing data pada session yang nantinya akan tersedia pada request setelahnya.

public function store() {
    // create a new post...

    return redirect('/posts')-with('message', 'Post berhasil dibuat.')
}
Enter fullscreen mode Exit fullscreen mode

Blade syntax untuk menampilan flashed message dari session setelah redirect.

@if (session('message'))
    <div class="alert">
        {{ session('message') }}
    </div>
@endif
Enter fullscreen mode Exit fullscreen mode

Flash data akan dihapus pada request selanjutnya, sehingga ketika halaman di-reload maka alert nya tidak akan muncul.

Pro Tip: Supaya flashed message yang ditampilkan hilang otomatis setelah beberapa detik, kamu bisa gunakan JavaScript. Berikut implementasinya menggunakan AlpineJS.

@if (session('message'))
    <div class="alert" 
        x-data="{ show: true }"
        x-show="show"
        x-transition
        x-init="setTimeout(() => show = false, 2000)"
    >
        {{ session('message') }}
    </div>
@endif
Enter fullscreen mode Exit fullscreen mode

Fin.

Top comments (0)