會話用於存儲有關跨請求的用戶資訊。Laravel提供了多種驅動器,如 file, cookie, apc, array, Memcached, Redis 和 database 用來處理會話數據。默認情況下,使用的檔驅動程式,因為它是羽量級的。會話可以在config/session.php 檔中進行配置。
訪問會話數據
訪問會話數據,我們需要通過HTTP請求來訪問會話的一個實例。獲得實例後,我們就可以使用get()方法,這需要一個參數-“鍵”,以獲取會話數據。
$value = $request->session()->get('key');
您可以使用 all() 方法來獲取所有的會話數據。
存儲會話數據
可以用put()方法被數據保存在會話中。put()方法有兩個參數,“key”和“value”。
$request->session()->put('key', 'value');
刪除Session數據
forget() 方法用於刪除會話中的資料項目。這個方法將“key”作為參數。
$request->session()->forget('key');
可使用flush()方法來刪除所有的會話數據。 使用 pull() 方法來檢索會話數據,然後刪除它。pull()方法也將採用 “key” 作為參數。forget() 和 pull() 方法之間的差異是forget() 方法將不會返回會話的值,而 pull() 方法將返回並刪除會話值。
示例
第1步 - 通過執行以下命令創建一個名為 SessionsController 的控制器。
php artisan make:controller SessionController
第2步 - 成功執行後,您會收到以下輸出 -
第2步 - 成功執行後,您會收到以下輸出 - 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','zaixian zaixian'); 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步 - 請訪問以下網址來設置會話數據。
http://localhost:8000/session/set
第6步 - 輸出結果如下面的圖片所示。
第7步 - 請訪問以下網址獲取會話數據。
http://localhost:8000/session/get
第8步 - 輸出結果如下面的圖片所示。
第9步 - 訪問以下網址以刪除會話數據。
http://localhost:8000/session/remove
第10步 - 輸出結果如下面的圖片所示。
上一篇:
Laravel本地化
下一篇:
Laravel驗證