laravel session
會(huì)話用于在請(qǐng)求中存儲(chǔ)關(guān)于用戶的信息。laravel提供各種驅(qū)動(dòng)程序,如 文件,cookie,apc,數(shù)組,memcached,redis 和數(shù)據(jù)庫 來處理會(huì)話數(shù)據(jù)。默認(rèn)情況下使用文件驅(qū)動(dòng)程序,因?yàn)樗禽p量級(jí)的。會(huì)話可以在 config / session.php 文件中配置 。
訪問會(huì)話數(shù)據(jù)
要訪問會(huì)話數(shù)據(jù),我們需要一個(gè)可以通過http請(qǐng)求訪問的會(huì)話實(shí)例。得到實(shí)例后,我們可以使用 get() 方法,該方法需要一個(gè)參數(shù) key 來獲取會(huì)話數(shù)據(jù)。
$value = $request->session()->get('key');
您可以使用 all() 方法來獲取所有會(huì)話數(shù)據(jù)而不是 get() 方法。
存儲(chǔ)會(huì)話數(shù)據(jù)
數(shù)據(jù)可以使用 put() 方法存儲(chǔ)在會(huì)話中。該 認(rèn)沽() 方法將兩個(gè)參數(shù), “關(guān)鍵” 和 “價(jià)值” 。
$request->session()->put('key', 'value');
刪除會(huì)話數(shù)據(jù)
該 忘了() 方法用于從會(huì)話中刪除的項(xiàng)目。這個(gè)方法將把 關(guān)鍵 作為參數(shù)。
$request->session()->forget('key');
使用 flush() 方法而不是 forget() 方法來刪除所有會(huì)話數(shù)據(jù)。使用 pull() 方法從會(huì)話中檢索數(shù)據(jù),然后將其刪除。pull()方法也將 鍵 作為參數(shù)。 forget() 和 pull() 方法之間的區(qū)別在于,forget() 方法不會(huì)返回會(huì)話的值, pull() 方法會(huì)返回它并從會(huì)話中刪除該值。
例
第1步 - 通過執(zhí)行以下命令創(chuàng)建一個(gè)名為 sessioncontroller 的控制器。
php artisan make:controller sessioncontroller --plain
第2步 - 成功執(zhí)行后,您將收到以下輸出 -
第3步 - 將以下代碼復(fù)制到文件中
應(yīng)用程序/ http /控制器/ sessioncontroller.php。
應(yīng)用程序/ http /控制器/ sessioncontroller.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 文件中添加以下行。
應(yīng)用程序/ http / routes.php文件
route::get('session/get','sessioncontroller@accesssessiondata'); route::get('session/set','sessioncontroller@storesessiondata'); route::get('session/remove','sessioncontroller@deletesessiondata');
第5步 - 訪問以下url以 在會(huì)話中設(shè)置數(shù)據(jù) 。
http://localhost:8000/session/set
第6步 - 輸出將如下圖所示。
第7步 - 訪問以下url以 從會(huì)話中獲取數(shù)據(jù) 。
http://localhost:8000/session/get
第8步 - 輸出將如下圖所示。
第9步 - 訪問以下url以 刪除會(huì)話數(shù)據(jù) 。
http://localhost:8000/session/remove
第10步 - 您將看到一條消息,如下圖所示。