我需要在我的Laravel项目中有几个会话,我需要每个会话都有一个特定的生命周期。
但是在Laravel文档中,我只是找到了如何为所有会话(在配置/会话中)设置一般生命周期而不是每个会话。
答案 0 :(得分:0)
一种选择是使用SessionManager
的{{3}}函数来修改驱动程序。例如,如果您在数据库中存储会话,则可以将以下内容放在服务提供者的boot
方法中(您可能希望移动逻辑,但这应该可以帮助您开始)
\Session::extend('database_custom', function() {
$table = config('session.table');
$lifetime = request('remember') ? 60*24*2 : 20; //minutes
$connection = config('session.connection');
return new Illuminate\Session\DatabaseSessionHandler(
app('db')->connection($connection), $table, $lifetime , app()
);
});
在您的.env
中,您将驱动程序设置为SESSION_DRIVER=database_custom
。查看Illuminate\Session\SessionManager
以获取更多示例。