跳到主要内容
版本:4.0

Session

配置

因为HTTP协议本身是无状态的,session提供了一种保存用户请求信息的途径。Laravel框架可以使用多种session后端驱动,并且提供了清晰、统一的API支持。框架内置支持一些比较流行的后端驱动如MemcachedRedis和数据库。

session的配置被存放在 app/config/session.php 文件中。请务必查看一下这个文件中那些带有注释的配置选项。Laravel默认使用原生的session驱动,它可以在大多数应用中良好地工作。

Session 使用指南

储存一个Session变量

Session::put('key', 'value');

读取一个Session变量

$value = Session::get('key');

读取一个Session变量或者返回默认值

$value = Session::get('key', 'default');

$value = Session::get('key', function() { return 'default'; });

判断一个Session变量是否存在

if (Session::has('users'))
{
//
}

删除一个Session变量

Session::forget('key');

删除所有Session变量

Session::flush();

重置 Session ID

Session::regenerate();

闪存数据

有时,你也许希望将信息暂存在session中到下一次请求为止,你可以使用 Session::flash 方法达到这个目的:

Session::flash('key', 'value');

刷新当前闪存数据,延长其过期时间到下一个请求

Session::reflash();

刷新一部分闪存数据

Session::keep(array('username', 'email'));

数据库 Sessions

当使用 数据库 session驱动时,你需要设置一张表去存储session变量。下面是一个例子,使用 Schema 声明新建一张表:

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

当然,你也可以使用Artisan命令 session:table 来创建这张表:

php artisan session:table

composer dump-autoload

php artisan migrate