会话用于在请求中存储有关用户的信息. Laravel提供各种驱动程序,如文件,cookie,apc,数组,Memcached,Redis,和数据库来处理会话数据.默认情况下,使用文件驱动程序,因为它是轻量级的.可以在 config/session.php 中存储的文件中配置会话.
访问会话数据
访问会话数据,我们需要一个可以通过HTTP请求访问的会话实例.获取实例后,我们可以使用 get()方法,该方法将使用一个参数"key"来获取会话数据.
$value = $request->session()->get('key');
您可以使用 all()方法获取所有会话数据,而不是 get()方法.
存储会话数据
可以使用 put()方法将数据存储在会话中. put()方法将采用两个参数,"key"和"value".
$request->session()->put('key', 'value');
删除会话数据
forget()方法用于删除项目来自会议.此方法将"key"作为参数.
$request->session()->forget('key');
使用 flush()方法代替 forget()方法删除所有会话数据.使用 pull()方法从会话中检索数据并在之后将其删除. pull()方法也将 key 作为参数. forget()和 pull()方法之间的区别在于 forget()方法不会返回会话的值并且 pull()方法将返回它并从会话中删除该值.
示例
步骤1 : 通过执行以下命令创建一个名为 SessionController 的控制器.
php artisan make:controller SessionController --plain
第2步 : 成功执行后,您将收到以下输出 :
第3步 : 将以下代码复制到
app/Http/Controllers/SessionController.php中的文件中.
app/Http/Controllers/SessionController.php
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步 : 访问以下网址在会话中设置数据.
http://localhost:8000/session/set
第6步 : 输出将如下图所示.
第7步 : 访问以下网址,以从会话中获取数据.
http://localhost:8000/session/get
第8步 : 输出将如下图所示.
第9步 : 访问以下网址删除会话数据.
http://localhost:8000/session/remove
第10步 : 您将看到如下图所示的消息.