Laravel之Session
一.配置
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的更多相关文章
- laravel框架session使用教程
laravel是一款php框架了,在使用laravel时会碰到session使用问题了,在使用过程中碰到一些问题与一些应用的例子. 用Laravel开发应用,把原有的代码copy过来,以前的代码ses ...
- laravel中session的过期时间
在项目开发的过程中,前后端分离 需要用session保存用户的登陆信息 这就涉及到session的有效期了 session又分为php中的session有效期和laravel中的session的有效期 ...
- Laravel处理session(会话)的方法详解
在Web应用程序中,有必要识别跨越请求的用户并为每个用户保存数据,为此,像Laravel这样的框架提供了一种称为会话的机制.本篇文章就来为大家介绍关于Laravel处理session(会话)的方法. ...
- Laravel 中 Session 的使用问题(dd()导致laravel中session取值问题)
Laravel 中 Session 的使用问题(dd()导致laravel中session取值问题) 一.总结 一句话总结: Laravel 会首先收集需要写入 Session 的所有数据,并在用户的 ...
- Laravel中Session的使用
以file为示例 1.Http request session方法$request->session()->put('key1','value1');echo $request->s ...
- laravel中将session由文件保存改为数据库保存
1.laravel中默认是使用文件保存session的,保存在/storage/framework/sessions下 2.修改配置文件 config/session.php中 'driver' =& ...
- Laravel框架——Session操作
use Session;//session的永久保存(在不过期范围内) Session::put('key', 'value'); //等同于PHP的原生session $_SESSION['key' ...
- laravel 共享session问题总结
我现在有一个A系统已经上线了,但是要开始研发另外一个功能,我打算把这个功能独立成一个B系统出来,放在其他域名下面,打算在这个A系统登录后,里面一个连接跳转到B系统,看到一些资料说用到共享Session ...
- laravel 使用 session
配置方面的不写了,请参考学院君的文章:http://laravelacademy.org/post/5898.html 在开始之前先说一下,使用 request 对象的 session() 方法,和直 ...
随机推荐
- codechef AUG17 T1 Chef and Rainbow Array
Chef and Rainbow Array Problem Code: RAINBOWA Chef likes all arrays equally. But he likes some array ...
- 【ZOJ4063】Tournament(构造)
题意:n个人要打m轮比赛 每一轮每个人都要有一个对手.而且每个对手只能打一次.假设a与b打了,c与d打了, 那么后面的任意一轮如果a与c打了,那么b就必须和d打 问是否存在方案,输出字典序最小的一组, ...
- 【ZOJ4070】Function and Function(签到)
题意:求 k 层嵌套的 f(x) 0<=x,k<=1e9 思路:迭代不会很多次后函数里就会=0或者1,再看层数奇偶直接返回答案 #include<cstdio> #includ ...
- pycharm远程登录mysql
pycharm远程登录mysqlmysql远程登录需要修改配置文件:cd /etc/mysql/mysql.conf.d/sudo vim mysqld.cn修改bing-address=0.0.0. ...
- Linux有名信号量的创建(sem_open中name参数构造)【转】
转自:http://blog.csdn.net/gfeng168/article/details/40740865 版权声明:本文为博主原创文章,未经博主允许不得转载. 一.sem_open函数nam ...
- 牛客网 暑期ACM多校训练营(第二场)D.money-贪心 or 动态规划
D.money 贪心,直接贴官方的题解吧. 题目大意 你要按照顺序依次经过n个商店,每到达一个商店你可以购买一件商品,也可以出售你手中的商品. 同一时刻你手上最多拿一件商品.在第i个商店购买和出售的代 ...
- Educational Codeforces Round 1D 【DFS求联通块】
http://blog.csdn.net/snowy_smile/article/details/49924965 D. Igor In the Museum time limit per test ...
- Codeforces 600E - Lomsat gelral(树上启发式合并)
600E - Lomsat gelral 题意 给出一颗以 1 为根的树,每个点有颜色,如果某个子树上某个颜色出现的次数最多,则认为它在这课子树有支配地位,一颗子树上,可能有多个有支配的地位的颜色,对 ...
- Jmeter进行webSocket接口测试
一.运行Jmeter (1) 去官方网站下载jmeter(版本为3.3)并解压.点击bin/jmeter.bat启动jmeter (2) 新建线程组. (3) 在线程组中新建WebSocket Sa ...
- 前端常用面试题目及答案-HTML&CSS篇
1. 行内元素和块级元素有哪些? 行内元素: 123456789101112131415161718192021222324252627 <a> //标签可定义锚 <ab ...