
- Laravel 教程
- Laravel - 主頁
- Laravel - 概述
- Laravel - 安裝
- Laravel - 應用結構
- Laravel - 配置
- Laravel - 路由
- Laravel - 中介軟體
- Laravel - 名稱空間
- Laravel - 控制器
- Laravel - 請求
- Laravel - Cookie
- Laravel - 響應
- Laravel - 檢視
- Laravel - Blade 模板
- Laravel - 重定向
- Laravel - 資料庫操作
- Laravel - 錯誤與日誌
- Laravel - 表單
- Laravel - 本地化
- Laravel - 會話
- Laravel - 驗證
- Laravel - 檔案上傳
- Laravel - 傳送郵件
- Laravel - Ajax
- Laravel - 錯誤處理
- Laravel - 事件處理
- Laravel - 門面
- Laravel - 合約
- Laravel - CSRF 保護
- Laravel - 認證
- Laravel - 授權
- Laravel - Artisan 控制檯
- Laravel - 加密
- Laravel - 雜湊
- 理解發布流程
- Laravel - 客人使用者門限
- Laravel - Artisan 命令
- Laravel - 分頁自定義
- Laravel - Dump 伺服器
- Laravel - 動作 URL
- Laravel 有用資源
- Laravel - 快速指南
- Laravel - 有用資源
- Laravel - 討論
Laravel - 會話
會話用於儲存跨請求的使用者相關資訊。Laravel 提供各種驅動程式,如檔案、Cookie、apc、陣列、Memcached、Redis,和資料庫來處理會話資料。預設情況下,使用檔案驅動程式,因為它很輕量。可以在儲存在config/session.php的檔案中配置會話。
訪問會話資料
要訪問會話資料,我們需要會話的例項,該例項可以透過 HTTP 請求進行訪問。獲取例項後,我們可以使用get()方法,該方法將獲取一個引數,“鍵”,以獲取會話資料。
$value = $request->session()->get('key');
你可以使用all()方法來獲取所有會話資料,而不是get()方法。
儲存會話資料
可以使用put()方法在會話中儲存資料。put()方法將獲取兩個引數,“鍵”和“值”。
$request->session()->put('key', 'value');
刪除會話資料
forget()方法用於從會話中刪除一項。此方法將獲取“鍵”作為引數。
$request->session()->forget('key');
使用 flush() method 代替 the forget() method 來刪除所有會話資料。使用 pull() method 來從會話中檢索資料,之後將其刪除。pull() method 也將獲取鍵作為引數。forget() 和 pull() 方法之間的區別在於,forget() 方法不會返回會話值,而 pull() 方法會返回會話值,並從會話中刪除該值。
示例
步驟 1 − 執行以下命令,建立一個名為SessionController的控制器。
php artisan make:controller SessionController --plain
步驟 2 − 執行成功後,你會收到以下輸出 −

步驟 3 − 將以下程式碼複製到
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."; } }
步驟 4 − 在app/Http/routes.php檔案中新增以下程式碼行。
app/Http/routes.php
Route::get('session/get','SessionController@accessSessionData'); Route::get('session/set','SessionController@storeSessionData'); Route::get('session/remove','SessionController@deleteSessionData');
步驟 5 − 訪問以下 URL 以在會話中設定資料。
https://:8000/session/set
步驟 6 − 輸出將顯示在下圖所示。

步驟 7 − 訪問以下 URL 以獲取會話中的資料。
https://:8000/session/get
步驟 8 − 輸出將顯示在下圖所示。

步驟 9 − 訪問以下 URL 以刪除會話資料。
https://:8000/session/remove
步驟 10 − 你會看到一個訊息,如下面影像所示。
