Flashing Message in Laravel
Fadli Hidayatullah
Posted on September 15, 2024
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.')
}
Blade syntax untuk menampilan flashed message dari session setelah redirect.
@if (session('message'))
<div class="alert">
{{ session('message') }}
</div>
@endif
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
Fin.
Posted on September 15, 2024
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.