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.
Top comments (0)