Laravel - Sesi
Sesi digunakan untuk menyimpan informasi tentang pengguna di seluruh permintaan. Laravel menyediakan berbagai macam driver sepertifile, cookie, apc, array, Memcached, Redis, dan databaseuntuk menangani data sesi. Secara default, driver file digunakan karena ringan. Sesi dapat dikonfigurasi dalam file yang disimpan diconfig/session.php.
Mengakses Data Sesi
Untuk mengakses data sesi, kita membutuhkan sebuah instance dari sesi yang dapat diakses melalui permintaan HTTP. Setelah mendapatkan instance, kita dapat menggunakan fileget() metode, yang akan membutuhkan satu argumen, “key”, untuk mendapatkan data sesi.
$value = $request->session()->get('key');
Kamu dapat memakai all() metode untuk mendapatkan semua data sesi, bukan get() metode.
Menyimpan Data Sesi
Data dapat disimpan dalam sesi menggunakan put()metode. Ituput() metode akan mengambil dua argumen, itu “key” dan “value”.
$request->session()->put('key', 'value');
Menghapus Data Sesi
Itu forget()metode digunakan untuk menghapus item dari sesi. Metode ini akan memakan waktu“key” sebagai argumennya.
$request->session()->forget('key');
Menggunakan flush() metode alih-alih forget()metode untuk menghapus semua data sesi. Menggunakanpull()metode untuk mengambil data dari sesi dan menghapusnya setelahnya. Metode pull () juga akan mengambilkeysebagai argumennya. Perbedaan antaraforget() dan pull() metode itu forget() metode tidak akan mengembalikan nilai sesi dan pull() metode akan mengembalikannya dan menghapus nilai itu dari sesi.
Contoh
Step 1 - Buat pengontrol bernama SessionController dengan menjalankan perintah berikut.
php artisan make:controller SessionController --plain
Step 2 - Setelah eksekusi berhasil, Anda akan menerima output berikut -
Step 3 - Salin kode berikut dalam file di
app/Http/Controllers/SessionController.php.
app/Http/Controllers/SessionController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
class SessionController extends Controller {
public function accessSessionData(Request $request) {
if($request->session()->has('my_name'))
echo $request->session()->get('my_name');
else
echo 'No data in the session';
}
public function storeSessionData(Request $request) {
$request->session()->put('my_name','Virat Gandhi');
echo "Data has been added to session";
}
public function deleteSessionData(Request $request) {
$request->session()->forget('my_name');
echo "Data has been removed from session.";
}
}
Step 4 - Tambahkan baris berikut di app/Http/routes.php mengajukan.
app/Http/routes.php
Route::get('session/get','SessionController@accessSessionData');
Route::get('session/set','SessionController@storeSessionData');
Route::get('session/remove','SessionController@deleteSessionData');
Step 5 - Kunjungi URL berikut ke set data in session.
http://localhost:8000/session/set
Step 6 - Outputnya akan muncul seperti yang ditunjukkan pada gambar berikut.
Step 7 - Kunjungi URL berikut ke get data from session.
http://localhost:8000/session/get
Step 8 - Outputnya akan muncul seperti yang ditunjukkan pada gambar berikut.
Step 9 - Kunjungi URL berikut ke remove session data.
http://localhost:8000/session/remove
Step 10 - Anda akan melihat pesan seperti yang ditunjukkan pada gambar berikut.