一.配置

Session 配置文件位于config/session.php 。默认情况下,Laravel 使用的session 驱动为文件驱动,这对许多应用而言是没有什么问题的。在生产环境中,你可能考虑使用memcached 或者redis 驱动以便获取更快的 session 性能。

session 驱动定义请求的 session 数据存放在哪里,Laravel 可以处理多种类型的驱动:
• file – session 数据存储在storage/framework/sessions 目录下;
• cookie – session 数据存储在经过加密的安全的 cookie 中;
• database – session 数据存储在数据库中
• memcached / redis – session 数据存储在 memcached/redis 中;
• array – session 数据存储在简单 PHP 数组中,在多个请求之间是非持久化的。
注意:数组驱动通常用于运行测试以避免 session 数据持久化。

二.配置session到数据库

1.当使用database session 驱动时,需要设置表包含session 项,下面是该数据表的表结构声明:

Schema::create('sessions', function ($table) {
$table->string('id')->unique();
$table->text('payload');
$table->integer('last_activity');
});

  

2.你可以使用 Artisan 命令session:table 来生成迁移:

php artisan session:table
composer dump-autoload
php artisan migrate

  

三.基本使用

1.访问session

$value = $request->session()->get('key', 'default');
获取所有数据
$data = $request->session()->all(); 2.利用session函数读写
读:
$value = session('key');
写:
session(['key' => 'value']); 3.判断session是否存在:
$bool = $request->session()->has('users'); 4.在session中存数据
获取到session实例后,就可以调用多个方法来与底层数据进行交互,例如,put方法存储新的数据到session中:
$request->session()->put('key', 'value'); 5.推送数组到session
push 方法可用于推送数据到值为数组的session,例如,如果user.teams键包含团队名数组,可以像这样推送新值到该数组:
$request->session()->push('user.teams', 'developers'); 6.获取并删除session
pull方法将会从session获取并删除数据:
$value = $request->session()->pull('key', 'default'); 7.从session中删除数据项
$request->session()->forget('key'); //删除一个
$request->session()->flush(); //删除全部 8.重新生成Session ID
$request->session()->regenerate();

  

四.一次性数据

有时候你可能想要在 session 中存储只在下个请求中有效的数据,可以通过flash 方法来实现。使用该方法存
储的 session 数据只在随后的 HTTP 请求中有效,然后将会被删除:

$request->session()->flash('status', 'Task was successful!');

  

如果你需要在更多请求中保持该一次性数据,可以使用reflash 方法,该方法将所有一次性数据保留到下一个请求,如果你只是想要保存特定一次性数据,可以使用keep 方法:

$request->session()->reflash();
$request->session()->keep(['username', 'email']);

  

五.自定义session驱动

Laravel之Session的更多相关文章

  1. laravel框架session使用教程

    laravel是一款php框架了,在使用laravel时会碰到session使用问题了,在使用过程中碰到一些问题与一些应用的例子. 用Laravel开发应用,把原有的代码copy过来,以前的代码ses ...

  2. laravel中session的过期时间

    在项目开发的过程中,前后端分离 需要用session保存用户的登陆信息 这就涉及到session的有效期了 session又分为php中的session有效期和laravel中的session的有效期 ...

  3. Laravel处理session(会话)的方法详解

    在Web应用程序中,有必要识别跨越请求的用户并为每个用户保存数据,为此,像Laravel这样的框架提供了一种称为会话的机制.本篇文章就来为大家介绍关于Laravel处理session(会话)的方法. ...

  4. Laravel 中 Session 的使用问题(dd()导致laravel中session取值问题)

    Laravel 中 Session 的使用问题(dd()导致laravel中session取值问题) 一.总结 一句话总结: Laravel 会首先收集需要写入 Session 的所有数据,并在用户的 ...

  5. Laravel中Session的使用

    以file为示例 1.Http request session方法$request->session()->put('key1','value1');echo $request->s ...

  6. laravel中将session由文件保存改为数据库保存

    1.laravel中默认是使用文件保存session的,保存在/storage/framework/sessions下 2.修改配置文件 config/session.php中 'driver' =& ...

  7. Laravel框架——Session操作

    use Session;//session的永久保存(在不过期范围内) Session::put('key', 'value'); //等同于PHP的原生session $_SESSION['key' ...

  8. laravel 共享session问题总结

    我现在有一个A系统已经上线了,但是要开始研发另外一个功能,我打算把这个功能独立成一个B系统出来,放在其他域名下面,打算在这个A系统登录后,里面一个连接跳转到B系统,看到一些资料说用到共享Session ...

  9. laravel 使用 session

    配置方面的不写了,请参考学院君的文章:http://laravelacademy.org/post/5898.html 在开始之前先说一下,使用 request 对象的 session() 方法,和直 ...

随机推荐

  1. mysql创建用户后无法登陆

    创建用户后登陆失败的原因是存在匿名用户: root@controller:~# mysql -h localhost -uaa -ppassword ERROR 1045 (28000): Acces ...

  2. ios截屏代码[转]

    http://www.cnblogs.com/chenxiangxi/p/3547974.html 这位博主的连接中将ios自定义大小位置的截屏代码写的很不错,马上就能用的方法,对于只想马上用的程序员 ...

  3. OpenGL入门学习 教程 (五)三维的空间变换

    http://oulehui.blog.163.com/blog/static/796146982011924428755/ 在前面绘制几何图形的时候,大家是否觉得我们绘图的范围太狭隘了呢?坐标只能从 ...

  4. 《Linux命令、编辑器与shell编程》第三版 学习笔记---002

    <Linux命令.编辑器与shell编程>第三版 学习笔记---001 Linux命令.编辑器与shell编程 Shell准备 1.识别Shell类型 echo  $0 echo $BAS ...

  5. 让vim的在输入模式下现实光标不同

    前几天用过苹果之后,发现vim中在插入模式下与命令模式下光标形状不同,根据光标形状就可以快速确认所在的模式,很方便,后来查了很多资料,一直查到官方的wiki也没有搞定,后来,终于搞定,现记录如下:我的 ...

  6. 安卓SDK安装时出现的小问题

    在SDK Manager启动安装后出现网页不能访问的错误 错误日志如下 Fetching URL: https://dl-ssl.google.com/android/repository/repos ...

  7. [译]java8新特性:函数式编程(functional programming)的优点

    Java8引入了函数式编程,他对java是一个极大的扩展.Java从此不在是一个单纯的面向对象语言,现在他同时混合了函数式编程.这是巨大的改变,需要我们调整面对对象的编程习惯,以适应这些变化. 但是为 ...

  8. 安装CentOS 7 遇到的坑

    1,U盘安装 1.1  用最新版UltraISO刻录到U盘 坑1,如果之前不是用UltraISO刻录,或者不是最新版,u盘的label就不是系统自带的,当你选择install centos 7然后ta ...

  9. RANSAC中迭代次数的计算

    假设 $w=\frac{内点个数 }{所有点的个数}$. 则 $p_{0}=w^n$表示采样的$n$个点全为内点的概率(可重复) 则至少有一个为外点的概率$p_{1}=1-p_{0}$ 则重复$K$次 ...

  10. XML签名

    英文:https://www.javacodegeeks.com/2013/10/xml-security-with-digital-signature-in-java.html 中文:http:// ...