访问会话数据,我们需要通过http请求来访问会话的一个实例。获得实例后,我们就可以使用get()方法,这需要一个参数-“键”,以获取会话数据。
$value = $request->session()->get('key');
可以用put()方法被数据保存在会话中。put()方法有两个参数,“key”和“value”。
$request->session()->put('key', 'value');
forget() 方法用于删除会话中的数据项。这个方法将“key”作为参数。
$request->session()->forget('key');
可使用flush()方法来删除所有的会话数据。 使用 pull() 方法来检索会话数据,然后删除它。pull()方法也将采用 “key” 作为参数。forget() 和 pull() 方法之间的差异是forget() 方法将不会返回会话的值,而 pull() 方法将返回并删除会话值。
php artisan make:controller sessioncontroller
第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','h3 h3'); echo "data has been added to session"; } public function deletesessiondata(request $request){ $request->session()->forget('my_name'); echo "data has been removed from session."; } }
app/http/routes.php
route::get('session/get','sessioncontroller@accesssessiondata'); route::get('session/set','sessioncontroller@storesessiondata'); route::get('session/remove','sessioncontroller@deletesessiondata');
http://localhost:8000/session/set
http://localhost:8000/session/get
第8步 - 输出结果如下面的图片所示。
http://localhost:8000/session/remove
第10步 - 输出结果如下面的图片所示。