有关Session的配置文件是aonfig/session.php文件。
如果不使用基于数据库、cookie或者Redis缓存类的Session的话,不需要改配置文件就可以使用了。
下面一个简单的使用Session的例子
1.定义路由
//创建Session变量
Route::get('/sessionCreate', 'UserController@sessionCreate');
//取得Session变量
Route::get('/sessionGet', 'UserController@sessionGet');
use Illuminate\Support\Facades\Session;
public function sessionCreate(){
//使用put方法直接创建Session变量
Session::put('ID', 1);
Session::put('USERNAME', '徐文志');
//使用push方法创建Session数组
Session::push('user.id', 1);
Session::push('user.name', 'azxuwen');
echo 'Session Created!!';
}
public function sessionGet(){
//使用get方法获取session变量或session数组
echo Session::get('ID');
echo Session::get('USERNAME');
var_dump(Session::get('user'));
}
基于数据库的Session
既然使用了数据库,就要保证Laravel已经配置好了config/database.php,也就是说已经可以连接数据库了,我这里已经连接好了Mysql数据库。
1.使用Artisan命令在数据库中新建3个数据表,这一点还是很简单的Laravel已经给我们提供好了命令,依次执行以下3个命令。
php artisan session:table
composer dump-autoload
php artisan migrate
执行完之后,会发现Mysql中新建了三张表,分别是 migrations, password_resets和sessions,先猜一下Session数据会保存在sessions表中,先不要管这三张表是用来干嘛的。
2.既然使用了数据库Session,这时就需要修改config/session.php了,将session驱动修改为
'driver' => 'database',
Laravel对于其他使用Session的驱动进行了以下定义
file - sessions 将保存在 storage/framework/sessions。
cookie - sessions 将安全保存在加密的 cookies 中。
database - sessions 将保存在你的应用程序数据库中。
memcached / redis - sessions 将保存在一个高速缓存的系统中。
array - sessions 将单纯的以 PHP 数组保存,只存活在当次请求。