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)