Laravel 专题
您的位置:php > Laravel专题 > Laravel会话(session)
Laravel会话(session)
作者:--    发布时间:2019-11-20
会话用于存储有关跨请求的用户信息。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','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.";
   }
}
第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步 - 输出结果如下面的图片所示。



网站声明:
本站部分内容来自网络,如您发现本站内容
侵害到您的利益,请联系本站管理员处理。
联系站长
373515719@qq.com
关于本站:
编程参考手册