Belajar Laravel (Chapter 17 | Tutorial HTTP Session)

Tobi Ahmad
dotlocal
Published in
4 min readApr 19, 2020
menggunakan session di laravel 7, delete session, get session, implemetasi session laravel 5 , 6 , 7

Session menyediakan fitur untuk menyimpan informasi tentang aktifitas user yang melakukan request. Pada satu session terdapat beberapa aktifitas seperti page views, event, interaksi, dan transaksi. Berikut contoh beberapa aktifitas dalam container session.

menggunakan session di laravel
https://support.google.com/analytics/answer/2731565?hl=en

Scope of This Chapter

Pada tutorial ini kita akan membahas tentang Session pada Laravel

#Konfigurasi

File konfigurasi session pada Laravel disimpan di config/session.php. Secara default session pada Laravel menggunakan driver file.

Session driver dapat menentukan dimana data session akan disimpan pada setiap request. Berikut beberapa session driver yang tersedia:

  • file — session disimpan pada lokasi storage/framework/sessions.
  • cookie — sessions are stored in secure, encrypted cookies.
  • database — sessions disimpan pada relational database.
  • memcached / redis — sessions disimpan pada server memcached/redis yang berbasis cache.
  • array — sessions disimpan pada array PHP

#Penggunaan Session

Berikut beberapa cara penggunaan session pada Laravel

#Mengakses Data Session

Untuk mendapatkan data session bisa diakses via global session helper dan Request instance dengan menggunakan method get() dan menyisipkan satu argument “key”.

// mengambil session dengan key = key
$value = $request->session()->get(‘key’);
// mengambil data dengan default value
$value = $request->session()->get('key', 'default');
$value = $request->session()->get('key', function () {
return 'default';
});

#Menggunakan Global Session Helper

Kita bisa menggunakan global session PHP function untuk menyimpan data session.

// mengambil data session pada key
$value = session(‘key’);
// mengambil data dengan default value
$value = session(‘key’, ‘default’);
// menyimpan data session
session([‘key’ => ‘value’]);

#Mengambil Semua Data Sesion

Jika ingin mengambil semua data session, kita bisa menggunakan method all()

$data = $request->session()->all();

#Mengecek item session

  • Menggunakan method has() untuk mengecek apakah session terdapat value ada dan not null. Return method ini true
if ($request->session()->has(‘users’)) {

}
  • Menggunakan method exists() untuk mengecek apakah key session sudah tersedia meskipun value session null
if ($request->session()->exists(‘users’)) {
//
}

#Menyimpan Data

Untuk menyimpan data session menggunakan method put()

// Via request instance
$request->session()->put(‘key’, ‘value’);
// Via global helpel
session([‘key’ => ‘value’]);

#Pushing To Array Session Values

Jika ingin menambahkan value pada array, misalkan kita ingin menambahkan value “user.teams”, menggunakan method push():

$request->session()->push('user.teams', 'developers');

#Retrieving & Deleting An Item

Kita bisa mengambil value dari key session kemudian menghapusnya dengan single statement dengan method pull():

$value = $request->session()->pull(‘key’, ‘default’);

#Deleting Data

Untuk menghapus data session kita bisa menggunakan method forget():

// Forget a single key…
$request->session()->forget(‘key’);
// Forget multiple keys…
$request->session()->forget([‘key1’, ‘key2’]);
$request->session()->flush();

#Contoh Pengunaanya

Step 1 — Membuat Controller

Buat controller SessionController dengan perintah Artisan pada terminal

php artisan make:controller SessionController

Kemudian edit file controller:

// Edit file app/Http/Controllers/SessionController.php<?phpnamespace App\Http\Controllers;use Illuminate\Http\Request;class SessionController extends Controller
{
public function index(Request $request)
{
if($request->session()->has('user')) {
return $request->session()->get('user');
} else {
return 'Data tidak ditemukan pada session';
}
}
public function store(Request $request)
{
$request->session()->put('user','John Doe');
return "Data user sudah ditambah pada session";
}
public function delete(Request $request)
{
$request->session()->forget('user');
return "Data sudah dihapus pada session.";
}
public function push(Request $request)
{
if($request->session()->exists('user')) {
$request->session()->push('user.teams', 'developers');
return $request->session()->get('user');
} else {
return 'Data tidak ditemukan pada session';
}
}
}

Step 2 — Tambah Route

// edit file routes/web.phpRoute::get('session/put','SessionController@store');
Route::get('session/get','SessionController@index');
Route::get('session/push','SessionController@push');
Route::get('session/del','SessionController@delete');

Step 3 — Buka route pada browser

Jalankan perintah php artisan serve pada terminal, dan akses beberapa URL berikut pada browser.

menggunakan http session di laravel
tutorial session di laravel
get, put, push session di laravel
delete and remove session di laravel

Next Chapter

Authentication

Support the Author

Jika suka dengan artikel ini, bisa support saya ditautan berikut ini

Cheers
Tobi Ahmad
Founder of Dot Local

--

--

Tobi Ahmad
dotlocal

Web Developer, Blogger, & Open source enthusiast.