因为HTTP协议本身是无状态的,session提供了一种保存用户请求信息的途径。Laravel框架可以使用多种session后端驱动,并且提供了清晰、统一的API支持。框架内置支持一些比较流行的后端驱动如Memcached、 Redis和数据库。
session的配置被存放在 app/config/session.php
文件中。请务必查看一下这个文件中那些带有注释的配置选项。Laravel默认使用原生
的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'));
当使用 数据库
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