注册SessionServiceProvider
打开bootstrap/app.php,在相应位置添加注册SessionServiceProvider,代码如下:
/*|--------------------------------------------------------------------------| Register Service Providers|--------------------------------------------------------------------------|*/
// 注册 SessionServiceProvider
$app->register(Illuminate\Session\SessionServiceProvider::class);
// 载入session相关配置
$app->configure('session');
configure函数会从文件中加载配置,并绑定到container中,接下来只需要在项目根目录创建config文件夹,并新建session.php配置文件
env('SESSION_DRIVER', 'file'),//默认使用file驱动,你可以在.env中配置
'lifetime' => 120,//缓存失效时间
'expire_on_close' => false,
'encrypt' => false,
'files' => storage_path('framework/session'),//file缓存保存路径
'connection' => null,
'table' => 'sessions',
'lottery' => [2, 100],
'cookie' => 'laravel_session',
'path' => '/',
'domain' => null,
'secure' => false,
];
然后在storage/framework/下建立session文件夹用来存储session缓存,别忘了修改权限
注册StartSession中间件
打开bootstrap/app.php,在Register Middleware位置修改
// bootstrap/app.php
// ...
|--------------------------------------------------------------------------
| Register Middleware
|--------------------------------------------------------------------------
// ...
$app->middleware([
Illuminate\Session\Middleware\StartSession::class
]);
添加Session别名
因为框架中使用了session别名,所以需要添加alias,不然会报错
// bootstrap/app.php
// ...
// 注册 SessionServiceProvider
$app->register(Illuminate\Session\SessionServiceProvider::class);
// 载入session相关配置
$app->configure('session');
// 设置session别名
$app->alias('session', 'Illuminate\Session\SessionManager');
使用session
至此,你就可以在代码中使用session了,使用 app('session') 即可获取session实例,示例:
$request->session()->set('user', $users);
$request->session()->get('user');