Tutorial Laravel #33 : Notifikasi Dengan Session Laravel

Notifikasi Dengan Session Laravel – Selamat datang kembali di tutorial laravel terlengkap sejagat raya :D. setelah pada tutorial sebelumnya di malasngoding.com kita belajar tentang session laravel. maka pada tutorial laravel ini kita akan belajar tentang cara membuat pesan notifikasi dengan session flash pada laravel.
Yang kita pelajari pada tutorial laravel ini masih berhubungan dengan session pada laravel. hanya saja session yang dipelajari adalah salah satu fitur atau fungsi dari session laravel. yaitu fungsi flash().
Notifikasi Dengan Session Laravel
Fitur Flash Message biasanya digunakan untuk membuat pesan notifikasi berupa pesan error, warning dan success. misalnya pada saat teman-teman ingin memunculkan pesan notifikasi pada saat melakukan sebuah aksi atau proses pada aplikasi, dan teman-teman ingin menampilkan pesan notifikasi, maka kita bisa gunakan fitur flash() pada laravel.
Contoh lainnya misalnya pada aplikasi yang ingin teman-teman buat, teman-teman ingin menampilkan pesan success dengan text “Data berhasil disimpan.” pada saat teman-teman menginput data. atau bisa juga membuat pesan notifikasi warning dengan pesan text “Maaf, data yang diinput sudah ada.“.
flash() adalah fungsi yang digunakan untuk membuat session yang bersifat sekali pakai. session yang kita buat dengan flash hanya akan berlaku untuk satu buah proses setelah session dibuat. sehingga fungsi flash() ini sangat efektif untuk kita gunakan pada proses yang singkat. seperti menampilkan pesan notifikasi, setelah itu session yang dibuat dengan flash langsung hilang dihapus secara otomatis.
Membuat Notifikasi Dengan Flash Message Laravel
Silahkan teman-teman perhatikan contoh cara membuat pesan notifikasi dengan session flash laravel berikut ini.
Saya akan membuat contoh paling sederhana untuk proses pembuatan notifikasi dengan session flash laravel.
Di contoh ini kita membutuhkan empat buah route. mari kita buat. BACA JUGA : Route Laravel.
routes/web.php
1 2 3 4 |
Route::get('/pesan','NotifController@index'); Route::get('/pesan/sukses','NotifController@sukses'); Route::get('/pesan/peringatan','NotifController@peringatan'); Route::get('/pesan/gagal','NotifController@gagal'); |
Saya yakin teman-teman sudah paham dengan route di atas, karena sudah kita pelajari berulang kali pada tutorial-tutorial laravel sebelumnya di malasngoding.com.
karena keempat route yang kita buat di atas akan mengakses controller NotifController.php, maka sekarang kita buat controller baru dengan nama NotifController.php.
php artisan make:controller NotifController
kemudian buat method berikut dalam controller NotifController.php
app/Http/Controllers/NotifController.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Session; class NotifController extends Controller { public function index(){ return view('notifikasi'); } public function sukses(){ Session::flash('sukses','Ini notifikasi SUKSES'); return redirect('pesan'); } public function peringatan(){ Session::flash('peringatan','Ini notifikasi PERINGATAN'); return redirect('pesan'); } public function gagal(){ Session::flash('gagal','Ini notifikasi GAGAL'); return redirect('pesan'); } } |
Perhatikan controller di atas, karena flash() juga sebenarnya bagian dari session laravel, maka kita wajib memanggil session terlebih dulu dengan use Session.
kemudian pada method index() kita memanggil view notifikasi.blade.php.
BACA JUGA : View Laravel
Buat view baru dengan nama notifikasi.blade.php.
resources/views/notifikasi.blade.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Malas Ngoding</title> <link href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous"> </head> <body> <div class="container mt-5"> <div class="row"> <div class="col-md-12"> <center> <h2>Tutorial Laravel #33 : Notifikasi Dengan Session Laravel</h2> <h4><a href="https://www.malasngoding.com/notifikasi-dengan-session-laravel/">WWW.MALASNGODING.COM</a></h4> </center> @if ($message = Session::get('sukses')) <div class="alert alert-success alert-block"> <button type="button" class="close" data-dismiss="alert">×</button> <strong>{{ $message }}</strong> </div> @endif @if ($message = Session::get('gagal')) <div class="alert alert-danger alert-block"> <button type="button" class="close" data-dismiss="alert">×</button> <strong>{{ $message }}</strong> </div> @endif @if ($message = Session::get('peringatan')) <div class="alert alert-warning alert-block"> <button type="button" class="close" data-dismiss="alert">×</button> <strong>{{ $message }}</strong> </div> @endif <center> <a href="/pesan/sukses" class="btn btn-success">NOTIFIKASI SUKSES</a> <a href="/pesan/gagal" class="btn btn-danger">NOTIFIKASI GAGAL</a> <a href="/pesan/peringatan" class="btn btn-warning">NOTIFIKASI PERINGATAN</a> </center> </div> </div> </div> <script src="https://code.jquery.com/jquery-3.3.1.js"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script> </body> </html> |
Perhatikan view di atas, saya jelaskan alur kerja nya.
Mulai dari bagian tombol yang kita buat di atas.
1 2 3 |
<a href="/pesan/sukses" class="btn btn-success">NOTIFIKASI SUKSES</a> <a href="/pesan/gagal" class="btn btn-danger">NOTIFIKASI GAGAL</a> <a href="/pesan/peringatan" class="btn btn-warning">NOTIFIKASI PERINGATAN</a> |
Contohnya jika kita klik pada tombol “NOTIFIKASI SUKSES”. maka halaman akan diarahkan ke route ‘/pesan/sukses‘. nah, di route ‘/pesan/sukses’ akan mengakses method sukses() pada controller NotifController.php.
Pada method ini lah kita buat session flash().
1 2 3 4 |
public function sukses(){ Session::flash('sukses','Ini notifikasi SUKSES'); return redirect('pesan'); } |
Pada method sukses() ini kita buat session flash() dengan nama sessionnya adalah “sukses”. dan isi session sukses kita isi dengan pesan notifikasi yang ingin kita buat untuk notifikasi sukses. untuk contoh ini kita buat dengan pesan “ini notifikasi SUKSES”.
Karena method ini mengalihkan halaman ke method pesan() yang menampilkan view notifikasi.blade.php, perhatikan kembali view notifikasi.blade.php.
Pada view ini kita periksa apakah ada session sukses,peringatan atau gagal. jika ada kita tampilkan pesan notifikasinya.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
@if ($message = Session::get('sukses')) <div class="alert alert-success alert-block"> <button type="button" class="close" data-dismiss="alert">×</button> <strong>{{ $message }}</strong> </div> @endif @if ($message = Session::get('gagal')) <div class="alert alert-danger alert-block"> <button type="button" class="close" data-dismiss="alert">×</button> <strong>{{ $message }}</strong> </div> @endif @if ($message = Session::get('peringatan')) <div class="alert alert-warning alert-block"> <button type="button" class="close" data-dismiss="alert">×</button> <strong>{{ $message }}</strong> </div> @endif |
kemudian bagian terakhir dari method ini akan mengalihkan halaman kembali ke route ‘pesan’.
Notifikasi Session Flash Laravel
kita lihat contohnya. jalankan project kita.
php artisan serve
kemudian jalankan
localhost:8000/pesan

Notifikasi Dengan Session Laravel
Kita coba klik tombol NOTIFIKASI SUKSES. maka muncul pesan notifikasi sukses, lengkap dengan pesan notifikasi yang sudah kita buat.

membuat pesan notifikasi pada laravel
coba klik tombol notifikasi gagal.

session flash laravel
Dan jika teman-teman reload halaman. maka pesan notifikasi tersebut akan hilang.
Karena sesuai dengan yang sudah dijelaskan tentang pengertian dan kegunaan session flash di atas tadi, session flash hanya aktif untuk sekali proses, setelah itu akan langsung dihapus otomatis. sehingga efektif untuk membuat notifikasi jangka pendek.
Ini hanya simulasi contoh sederhana tentang cara membuat pesan notifikasi dengan session flash pada laravel. metode ini bisa kita terapkan pada aplikasi kita misalnya untuk membuat pesan notifikasi pada CRUD. misalnya jika data telah diinput, maka langsung mungul notifikasi bahwa “Data telah diinput”. atau membuat notifikasi pada saat data dihapus dengan notifikasi “data berhasil dihapus.”.
Caranya sangat sederhana, pertama panggil class session laravel nya dengan use session. kemudian sebelum mengalihkan halaman, buat session flash nya, beri nama dan isi sessionnya. kemudian pada view nya kita buat pengecekan untuk menampilkan notifikasi session flashnya.
Sangat sederhana. fitur flash ini bisa teman-teman kembangkan lagi dan bisa teman-teman terapkan pada aplikasi yang teman-teman buat menggunakan laravel. atau teman-teman juga bisa menggunakan sweet alert untuk menampilkan pesan errornya. tinggal teman-teman kembangkan dan teman-teman buat pesan notifikasinya pada sweet alert.
Sekian dulu tutorial cara membuat notifikasi pada laravel. selanjutnya kita akan masuk ke tutorial cara mengelola error atau error handling pada laravel.
Tutorial Menarik Lainnya

Tutorial Laravel #41 : Action URL Laravel


Tutorial Laravel #40 : Multi Bahasa Localization Laravel


Tutorial Laravel #39 : Import Excel Laravel

