Tutorial Laravel 5.5 - Cara Penggunaan Session

Post a Comment


Laravel sudah menyediakan fungsi-fungsi default untuk melakukan manipulasi session. Session yang digunakan laravel berbeda dengan session pada PHP pada umunya. Jadi jika anda menggunakan fungsi-fungsi session pada laravel, session tersebut tidak dapat terbaca pada variabel $_SESSION dan begitu pula sebaliknya. Pada artikel kali ini saya akan menjelaskan cara penggunaan session pada laravel ini.


#KONFIGURASI

Konfigurasi dari session pada laravel terdapat di dalam file config/session.php. Di dalam file tersebut, terdapat variabel-variabel konfigurasi di mana sebagian besar dari variabel tersebut dapat diatur dengan menggunakan file .env. Anda cukup menginisialisasi variabel konfigurasi session pada file .env. Misalnya anda ingin melakukan konfigurasi driver session yang digunakan, anda cukup menambahkan variabel SESSION_DRIVER pada file .env seperti contoh di bawah ini.

SESSION_DRIVER = database

Jadi program akan menggunakan driver database sesuai nilai yang terdapat pada file .env tersebut. 

Baca juga :

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. Schema dari tabel tersebut adalah sebagai berikut :

Schema::create('sessions', function ($table) {
    $table->string('id')->unique();
    $table->unsignedInteger('user_id')->nullable();
    $table->string('ip_address', 45)->nullable();
    $table->text('user_agent')->nullable();
    $table->text('payload');
    $table->integer('last_activity');
});

Anda juga dapat menggunakan perintah artisan berikut untuk membuat tabel tersebut

php artisan session:table
php artisan migrate



#CARA PENGGUNAAN SESSION

Terdapat 2 macam cara untuk melakukan manipulasi data session pada laravel yaitu dengan menggunakan helper global session dan yang kedua adalah dengan menggunakan Request. Untuk menggunakan Request, hanya dapat dilakukan pada file controller. Sedangkan penggunaan helper session dapat dilakukan di view juga.


#MENDAPATKAN NILAI SESSION

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 atas 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 dapat dilihat pada contoh kode berikut ini 

// Via a request...
$request->session()->put('key', 'value');

// Via the global helper...
session(['key' => 'value']);

Contoh kode di atas 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')) {
    //
}



Demikianlah penjelasan pada artikel Tutorial Laravel 5.5 - Cara Penggunaan Session ini. Semoga penjelasan pada artikel ini dapat mudah dipahami. Jika terdapat pertanyaan silahkan menggunakan kolom komentar untuk menyampaikannya. Terima kasih.

Related Posts

Post a Comment