Ikhwan Saputera

Setiap Waktu adalah Belajar, Setiap Tempat adalah Sekolah, Setiap Orang adalah Guru

Saturday, January 11, 2020

Laravel Session

Sessions digunakan untuk menyimpan informasi tentang pengguna. Laravel menyediakan berbagai driver seperti file, cookie, apc, array, Memcached, Redis, dan database untuk menangani data sessions. Secara default, driver file digunakan karena ringan. Sesi dapat dikonfigurasi dalam file yang disimpan di config/session.php

Konfigurasi

Konfigurasi driver session pada laravel ini adalah sebagai berikut :
  • file - session disimpan pada direktori storage/framework/sessions
  • cookie - session disimpan pada cookie
  • database - session disimpan dalam database
  • memcached / redis - session disimpan dengan menggunakan memcached atau redis
  • array - session disimpan pada array PHP dan session ini tidak akan bertahan

Jika anda menggunakan driver database maka anda perlu membuat terlebih dahulu table sessions untuk menyimpannya, dengan perintah

php artisan session:table
php artisan migrate

Menggunakan Sessions

Cara untuk mendapatkan data session adalah sebagai berikut 
<?php

namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;

class UserController extends Controller
{
    public function show(Request $request, $id)
    {
        $value = $request->session()->get('key');

        //
    }
}

Cara di ini adalah cara dengan menggunakan Request. Digunakan perintah $request->session()->get('key')  untuk mendapatkan nilai session key. Terdapat 2 parameter pada perintah get ini, parameter pertama adalah key dari session yang ingin didapatkan dan parameter kedua adalah nilai yang dikembalikan jika key pada session tersebut tidak ditemukan. Contohnya dapat dilihat pada kode berikut ini :
$value = $request->session()->get('key', 'default');

Sedangkan jika anda menggunakan global helper session caranya dapat dilihat pada contoh kode berikut 
$value = session('key', 'default');

Untuk mendapatkan data dengan menggunakan global helper session juga terdapat 2 parameter seperti penggunaan dengan Request. Kedua parameter tersebut sama persis dengan yang terdapat pada fungsi get di Request.
MENYIMPAN NILAI SESSION 

Cara untuk menyimpan nilai pada session seperti contoh kode berikut ini 
// Via a request...
$request->session()->put('key', 'value');

// Via the global helper...
session(['key' => 'value']);
Contoh kode di ini pada bagian atas adalah cara dengan menggunakan Request sedangkan pada bagian bawah adalah cara dengan menggunakan global helper session. Fungsi nya adalah untuk menyimpan nilai pada session dengan key 'key'.

MENGHAPUS SESSION 

Untuk menghapus session terdapat 2 cara, yaitu dengan menggunakan fungsi forget untuk menghapus session dengan key tertentu atau menggunakan flush untuk menghapus semua nilai pada semua key session yang ada. Contoh penggunaanya adalah sebagai berikut :
// Via request
$request->session()->forget('key');
$request->session()->flush();

//Via global helper
session()->forget('key');
session()->flush();
 
PENGECEKAN KEBERADAAN KEY SESSION
Laravel juga sudah menyediakan fungsi untuk melakukan pengecekan apakah session dengan key tersebut ada atau tidak. Terdapat 2 macam fungsi pengecekan. Yang pertama adalah dengan menggunakan fungsi has yang akan mengembalikan nilai true jika nilai dari session tersebut ada dan bukan null. Berikut ini adalah contoh penggunaannya :
if ($request->session()->has('users')) {
    //
}
Yang kedua adalah dengan menggunakan fungsi exists yang akan mengembalikan nilai true jika  nilai dari session dengan key yang dicari ada walaupun nilainya adalah null. Contoh penggunaannya adalah sebagai berikut :
if ($request->session()->exists('users')) {
    //
}

No comments:

Post a Comment